{"version":3,"file":"kotlin.js","sources":["wrapper.js","js/arrayUtils.js","js/callableReferenceUtils.js","js/conversions.js","js/core.js","js/long.js","js/markerFunctions.js","js/misc.js","js/polyfills.js","js/rtti.js","runtime/arrayUtils.kt","runtime/Enum.kt","primitiveCompanionObjects.kt","common/src/generated/_Arrays.kt","common/src/generated/_Ranges.kt","unsigned/src/kotlin/UByte.kt","unsigned/src/kotlin/UInt.kt","unsigned/src/kotlin/UShort.kt","src/kotlin/collections/Collections.kt","src/kotlin/collections/Maps.kt","src/kotlin/collections/Sets.kt","src/kotlin/ranges/PrimitiveRanges.kt","src/kotlin/text/HexExtensions.kt","src/kotlin/text/StringNumberConversions.kt","src/kotlin/time/Duration.kt","unsigned/src/kotlin/UnsignedUtils.kt","../../core/builtins/src/kotlin/internal/InternalAnnotations.kt","src/kotlin/collections/Iterables.kt","src/kotlin/collections/Sequences.kt","src/kotlin/util/Preconditions.kt","js/src/generated/_ArraysJs.kt","src/kotlin/comparisons/Comparisons.kt","src/kotlin/util/Standard.kt","js/src/generated/_ComparisonsJs.kt","unsigned/src/kotlin/ULong.kt","common/src/generated/_Collections.kt","js/src/kotlin/collections.kt","src/kotlin/collections/Iterators.kt","common/src/generated/_Comparisons.kt","common/src/generated/_Maps.kt","common/src/generated/_OneToManyTitlecaseMappings.kt","js/src/kotlin/text/char.kt","js/src/kotlin/text/string.kt","src/kotlin/text/Char.kt","src/kotlin/CharCode.kt","common/src/generated/_Sequences.kt","common/src/generated/_Sets.kt","common/src/generated/_Strings.kt","src/kotlin/text/Strings.kt","unsigned/src/kotlin/UByteArray.kt","unsigned/src/kotlin/UIntArray.kt","unsigned/src/kotlin/ULongArray.kt","unsigned/src/kotlin/UShortArray.kt","common/src/generated/_UArrays.kt","common/src/generated/_UCollections.kt","common/src/generated/_UComparisons.kt","common/src/generated/_URanges.kt","common/src/generated/_USequences.kt","common/src/kotlin/ExceptionsH.kt","common/src/kotlin/JsAnnotationsH.kt","common/src/kotlin/ioH.kt","builtin-sources/Collections.kt","builtin-sources/Unit.kt","builtin-sources/annotation/Annotations.kt","src/kotlin/builtins.kt","src/kotlin/jsTypeOf.kt","src/kotlin/kotlin.kt","src/kotlin/charCode_js-v1.kt","src/kotlin/coroutines/CoroutineImpl.kt","src/kotlin/util/Result.kt","src/kotlin/coroutines/Continuation.kt","src/kotlin/coroutines/intrinsics/IntrinsicsJs.kt","src/kotlin/currentBeMisc.kt","src/kotlin/exceptions.kt","src/kotlin/jsOperators.kt","src/kotlin/math_js-v1.kt","src/kotlin/numbers_js-v1.kt","src/kotlin/reflection_js-v1.kt","src/kotlin/text/numberConversions_js-v1.kt","js/src/kotlin/js.arrays/fill.kt","js/src/kotlin/js.arrays/sort.kt","js/src/generated/_CharCategories.kt","js/src/generated/_CollectionsJs.kt","js/src/generated/_DigitChars.kt","js/src/generated/_LetterChars.kt","js/src/generated/_OtherLowercaseChars.kt","js/src/generated/_OtherUppercaseChars.kt","js/src/generated/_StringsJs.kt","js/src/generated/_TitlecaseMappings.kt","js/src/generated/_UArraysJs.kt","js/src/generated/_WhitespaceChars.kt","js/src/kotlin/AutoCloseableJs.kt","js/src/kotlin/Comparator.kt","js/src/kotlin/ItemArrayLike.kt","js/src/kotlin/annotations.kt","js/src/kotlin/annotationsJVM.kt","js/src/kotlin/collections/AbstractMutableCollection.kt","js/src/kotlin/collections/AbstractMutableList.kt","js/src/kotlin/collections/AbstractMutableMap.kt","js/src/kotlin/collections/AbstractMutableSet.kt","js/src/kotlin/collections/ArrayList.kt","js/src/kotlin/collections/ArraySorting.kt","js/src/kotlin/collections/ArraysJs.kt","js/src/kotlin/collections/EqualityComparator.kt","js/src/kotlin/collections/HashMap.kt","js/src/kotlin/collections/HashSet.kt","js/src/kotlin/collections/InternalHashCodeMap.kt","js/src/kotlin/collections/InternalMap.kt","js/src/kotlin/collections/InternalStringMap.kt","js/src/kotlin/collections/LinkedHashMap.kt","js/src/kotlin/collections/LinkedHashSet.kt","js/src/kotlin/concurrent.kt","js/src/kotlin/console.kt","js/src/kotlin/coroutines/SafeContinuationJs.kt","js/src/kotlin/coroutines/cancellation/CancellationException.kt","js/src/kotlin/coroutines/js/internal/EmptyContinuation.kt","js/src/kotlin/date.kt","js/src/kotlin/dom/Builders.kt","js/src/kotlin/dom/Classes.kt","js/src/kotlin/dom/Dom.kt","js/src/kotlin/dom/Mutations.kt","js/src/kotlin/dynamic.kt","js/src/kotlin/enums/EnumEntriesSerializationProxy.kt","js/src/kotlin/exceptionUtils.kt","js/src/kotlin/grouping.kt","src/kotlin/collections/Grouping.kt","js/src/kotlin/internalAnnotations.kt","js/src/kotlin/io/encoding/Base64Js.kt","js/src/kotlin/json.kt","js/src/kotlin/math.kt","js/src/kotlin/numbers.kt","js/src/kotlin/promise.kt","js/src/kotlin/random/PlatformRandom.kt","js/src/kotlin/reflect/AssociatedObjects.kt","js/src/kotlin/reflect/JsClass.kt","js/src/kotlin/reflect/KClassImpl.kt","js/src/kotlin/reflect/KClassesImpl.kt","js/src/kotlin/reflect/KTypeHelpers.kt","js/src/kotlin/reflect/KTypeImpl.kt","js/src/kotlin/reflect/KTypeParameterImpl.kt","js/src/kotlin/reflect/primitives.kt","js/src/kotlin/reflect/reflection.kt","js/src/kotlin/regexp.kt","js/src/kotlin/sequence.kt","js/src/kotlin/text/CharCategoryJS.kt","js/src/kotlin/text/CharacterCodingExceptionJs.kt","js/src/kotlin/text/StringBuilderJs.kt","js/src/kotlin/text/numberConversions.kt","js/src/kotlin/text/regex.kt","src/kotlin/text/StringBuilder.kt","js/src/kotlin/text/stringsCode.kt","js/src/kotlin/text/utf8Encoding.kt","js/src/kotlin/throwableExtensions.kt","js/src/kotlin/time/DurationJs.kt","js/src/kotlin/time/DurationUnit.kt","js/src/kotlin/time/MonoTimeSource.kt","js/src/kotlinx/dom/Builders.kt","js/src/kotlinx/dom/Classes.kt","src/kotlin/text/regex/RegexExtensions.kt","js/src/kotlinx/dom/Dom.kt","js/src/kotlinx/dom/Mutations.kt","js/src/org.w3c/EventListener.kt","js/src/org.w3c/deprecated.kt","js/src/org.w3c/org.khronos.webgl.kt","js/src/org.w3c/org.w3c.dom.clipboard.kt","js/src/org.w3c/org.w3c.dom.css.kt","js/src/org.w3c/org.w3c.dom.encryptedmedia.kt","js/src/org.w3c/org.w3c.dom.events.kt","js/src/org.w3c/org.w3c.dom.kt","js/src/org.w3c/org.w3c.fetch.kt","js/src/org.w3c/org.w3c.dom.mediacapture.kt","js/src/org.w3c/org.w3c.dom.mediasource.kt","js/src/org.w3c/org.w3c.dom.pointerevents.kt","js/src/org.w3c/org.w3c.dom.svg.kt","js/src/org.w3c/org.w3c.files.kt","js/src/org.w3c/org.w3c.notifications.kt","js/src/org.w3c/org.w3c.workers.kt","js/src/org.w3c/org.w3c.xhr.kt","src/kotlin/annotations/ExperimentalStdlibApi.kt","src/kotlin/annotations/Inference.kt","src/kotlin/annotations/Multiplatform.kt","src/kotlin/annotations/OptIn.kt","src/kotlin/annotations/WasExperimental.kt","src/kotlin/collections/AbstractCollection.kt","src/kotlin/collections/AbstractIterator.kt","src/kotlin/collections/AbstractList.kt","src/kotlin/collections/AbstractMap.kt","src/kotlin/collections/AbstractSet.kt","src/kotlin/collections/ArrayDeque.kt","src/kotlin/collections/Arrays.kt","src/kotlin/collections/IndexedValue.kt","src/kotlin/collections/MapAccessors.kt","src/kotlin/collections/MapWithDefault.kt","src/kotlin/collections/MutableCollections.kt","src/kotlin/collections/PrimitiveIterators.kt","src/kotlin/collections/ReversedViews.kt","src/kotlin/collections/SequenceBuilder.kt","src/kotlin/collections/SlidingWindow.kt","src/kotlin/collections/UArraySorting.kt","src/kotlin/comparisons/compareTo.kt","src/kotlin/contracts/ContractBuilder.kt","src/kotlin/coroutines/ContinuationInterceptor.kt","src/kotlin/coroutines/CoroutineContext.kt","src/kotlin/coroutines/CoroutineContextImpl.kt","src/kotlin/coroutines/intrinsics/Intrinsics.kt","src/kotlin/enums/EnumEntries.kt","src/kotlin/experimental/ExperimentalObjCName.kt","src/kotlin/experimental/ExperimentalObjCRefinement.kt","src/kotlin/experimental/bitwiseOperations.kt","src/kotlin/experimental/inferenceMarker.kt","src/kotlin/internal/Annotations.kt","src/kotlin/internal/progressionUtil.kt","src/kotlin/io/encoding/Base64.kt","src/kotlin/io/encoding/ExperimentalEncodingApi.kt","src/kotlin/properties/Delegates.kt","src/kotlin/properties/Interfaces.kt","src/kotlin/properties/ObservableProperty.kt","src/kotlin/properties/PropertyReferenceDelegates.kt","src/kotlin/random/Random.kt","src/kotlin/random/URandom.kt","src/kotlin/random/XorWowRandom.kt","src/kotlin/ranges/ProgressionIterators.kt","src/kotlin/ranges/Progressions.kt","src/kotlin/ranges/Range.kt","src/kotlin/ranges/Ranges.kt","src/kotlin/reflect/KClasses.kt","src/kotlin/reflect/KTypeProjection.kt","src/kotlin/reflect/KVariance.kt","src/kotlin/reflect/typeOf.kt","src/kotlin/text/Appendable.kt","src/kotlin/text/HexFormat.kt","src/kotlin/text/Indent.kt","src/kotlin/text/Typography.kt","src/kotlin/text/UHexExtensions.kt","src/kotlin/text/regex/MatchResult.kt","src/kotlin/time/DurationUnit.kt","src/kotlin/time/ExperimentalTime.kt","src/kotlin/time/TimeSource.kt","src/kotlin/time/TimeSources.kt","src/kotlin/util/Lazy.kt","src/kotlin/time/longSaturatedMath.kt","src/kotlin/time/measureTime.kt","src/kotlin/util/DeepRecursive.kt","src/kotlin/util/FloorDivMod.kt","src/kotlin/util/HashCode.kt","src/kotlin/util/KotlinVersion.kt","src/kotlin/util/Lateinit.kt","src/kotlin/util/Numbers.kt","src/kotlin/util/Suspend.kt","src/kotlin/util/Tuples.kt","unsigned/src/kotlin/UIntRange.kt","unsigned/src/kotlin/ULongRange.kt","unsigned/src/kotlin/UMath.kt","unsigned/src/kotlin/UNumbers.kt","unsigned/src/kotlin/UProgressionUtil.kt","unsigned/src/kotlin/UStrings.kt","unsigned/src/kotlin/annotations/Unsigned.kt","common/src/kotlin/MathH.kt","js/src/kotlin/js/js.math.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 if (a === null) return \"null\"\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 (a === null || b === null || !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 if (arr === null) return 0\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 * Converts this number value to `Long`.\n * The fractional part, if any, is rounded down towards zero.\n * Returns zero if this `Double` value is `NaN`, `Long.MIN_VALUE` if it's less than `Long.MIN_VALUE`,\n * `Long.MAX_VALUE` if it's bigger than `Long.MAX_VALUE`.\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)) {\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 (5) 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, 5));\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 < 5) {\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\nKotlin.getReifiedTypeParameterKType = function(typeParameter) {\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-2020 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 Object.defineProperty(String.prototype, \"startsWith\", {\n value: function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n }\n });\n}\nif (typeof String.prototype.endsWith === \"undefined\") {\n Object.defineProperty(String.prototype, \"endsWith\", {\n value: 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}\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}\nif (typeof Math.clz32 === \"undefined\") {\n Math.clz32 = (function(log, LN2) {\n return function(x) {\n var asUint = x >>> 0;\n if (asUint === 0) {\n return 32;\n }\n return 31 - (log(asUint) / LN2 | 0) | 0; // the \"| 0\" acts like math.floor\n };\n })(Math.log, Math.LN2);\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\nif (typeof Array.prototype.fill === \"undefined\") {\n // Polyfill from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill\n Object.defineProperty(Array.prototype, 'fill', {\n value: function (value) {\n\n // Steps 1-2.\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n\n var O = Object(this);\n\n // Steps 3-5.\n var len = O.length >>> 0;\n\n // Steps 6-7.\n var start = arguments[1];\n var relativeStart = start >> 0;\n\n // Step 8.\n var k = relativeStart < 0 ?\n Math.max(len + relativeStart, 0) :\n Math.min(relativeStart, len);\n\n // Steps 9-10.\n var end = arguments[2];\n var relativeEnd = end === undefined ?\n len : end >> 0;\n\n // Step 11.\n var finalValue = relativeEnd < 0 ?\n Math.max(len + relativeEnd, 0) :\n Math.min(relativeEnd, len);\n\n // Step 12.\n while (k < finalValue) {\n O[k] = value;\n k++;\n }\n\n // Step 13.\n return O;\n }\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.fill === \"undefined\") {\n Object.defineProperty(TypedArray.prototype, 'fill', {\n value: Array.prototype.fill\n });\n }\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};","/*\n * Copyright 2010-2020 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@PublishedApi\nexternal internal fun Array(size: Int): Array\n\n@JsName(\"newArray\")\nfun newArray(size: Int, initValue: T) = fillArrayVal(Array(size), initValue)\n\n@JsName(\"newArrayF\")\ninline fun arrayWithFun(size: Int, init: (Int) -> T) = fillArrayFun(Array(size), init)\n\n@JsName(\"fillArray\")\ninline fun fillArrayFun(array: Array, init: (Int) -> T): Array {\n for (i in 0..array.size - 1) {\n array[i] = init(i)\n }\n return array\n}\n\n@JsName(\"booleanArray\")\nfun booleanArray(size: Int, init: dynamic): Array {\n val result: dynamic = Array(size)\n result.`$type$` = \"BooleanArray\"\n return when (init) {\n null, true -> fillArrayVal(result, false)\n false -> result\n else -> fillArrayFun(result, init)\n }\n}\n\n@JsName(\"booleanArrayF\")\ninline fun booleanArrayWithFun(size: Int, init: (Int) -> Boolean): Array = fillArrayFun(booleanArray(size, false), init)\n\n@JsName(\"charArray\")\n@Suppress(\"UNUSED_PARAMETER\")\nfun charArray(size: Int, init: dynamic): Array {\n val result = js(\"new Uint16Array(size)\")\n result.`$type$` = \"CharArray\"\n return when (init) {\n null, true, false -> result // For consistency\n else -> fillArrayFun(result, init)\n }\n}\n\n@JsName(\"charArrayF\")\ninline fun charArrayWithFun(size: Int, init: (Int) -> Char): Array {\n val array = charArray(size, null)\n for (i in 0..array.size - 1) {\n @Suppress(\"UNUSED_VARIABLE\") // used in js block\n val value = init(i)\n js(\"array[i] = value;\")\n }\n return array\n}\n\n@JsName(\"untypedCharArrayF\")\ninline fun untypedCharArrayWithFun(size: Int, init: (Int) -> Char): Array {\n val array = Array(size)\n for (i in 0..array.size - 1) {\n @Suppress(\"UNUSED_VARIABLE\") // used in js block\n val value = init(i)\n js(\"array[i] = value;\")\n }\n return array\n}\n\n@JsName(\"longArray\")\nfun longArray(size: Int, init: dynamic): Array {\n val result: dynamic = Array(size)\n result.`$type$` = \"LongArray\"\n return when (init) {\n null, true -> fillArrayVal(result, 0L)\n false -> result\n else -> fillArrayFun(result, init)\n }\n}\n\n@JsName(\"longArrayF\")\ninline fun longArrayWithFun(size: Int, init: (Int) -> Long): Array = fillArrayFun(longArray(size, false), init)\n\nprivate fun fillArrayVal(array: Array, initValue: T): Array {\n for (i in 0..array.size - 1) {\n array[i] = initValue\n }\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\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}","/*\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.internal\n\n@JsName(\"DoubleCompanionObject\")\ninternal object DoubleCompanionObject {\n @JsName(\"MIN_VALUE\")\n const val MIN_VALUE: Double = 4.9E-324\n\n @JsName(\"MAX_VALUE\")\n const val MAX_VALUE: Double = 1.7976931348623157E308\n\n @JsName(\"POSITIVE_INFINITY\")\n @Suppress(\"DIVISION_BY_ZERO\")\n const val POSITIVE_INFINITY: Double = 1.0 / 0.0\n\n @JsName(\"NEGATIVE_INFINITY\")\n @Suppress(\"DIVISION_BY_ZERO\")\n const val NEGATIVE_INFINITY: Double = -1.0 / 0.0\n\n @JsName(\"NaN\")\n @Suppress(\"DIVISION_BY_ZERO\")\n const val NaN: Double = -(0.0 / 0.0)\n\n @JsName(\"SIZE_BYTES\")\n const val SIZE_BYTES = 8\n\n @JsName(\"SIZE_BITS\")\n const val SIZE_BITS = 64\n}\n\n@JsName(\"FloatCompanionObject\")\ninternal object FloatCompanionObject {\n @JsName(\"MIN_VALUE\")\n const val MIN_VALUE: Float = 1.4E-45F\n\n @JsName(\"MAX_VALUE\")\n const val MAX_VALUE: Float = 3.4028235E38F\n\n @JsName(\"POSITIVE_INFINITY\")\n @Suppress(\"DIVISION_BY_ZERO\")\n const val POSITIVE_INFINITY: Float = 1.0F / 0.0F\n\n @JsName(\"NEGATIVE_INFINITY\")\n @Suppress(\"DIVISION_BY_ZERO\")\n const val NEGATIVE_INFINITY: Float = -1.0F / 0.0F\n\n @JsName(\"NaN\")\n @Suppress(\"DIVISION_BY_ZERO\")\n const val NaN: Float = -(0.0F / 0.0F)\n\n @JsName(\"SIZE_BYTES\")\n const val SIZE_BYTES = 4\n\n @JsName(\"SIZE_BITS\")\n const val SIZE_BITS = 32\n}\n\n@JsName(\"IntCompanionObject\")\ninternal object IntCompanionObject {\n @JsName(\"MIN_VALUE\")\n val MIN_VALUE: Int = -2147483647 - 1\n\n @JsName(\"MAX_VALUE\")\n val MAX_VALUE: Int = 2147483647\n\n @JsName(\"SIZE_BYTES\")\n const val SIZE_BYTES = 4\n\n @JsName(\"SIZE_BITS\")\n const val SIZE_BITS = 32\n}\n\n@JsName(\"LongCompanionObject\")\ninternal object LongCompanionObject {\n @JsName(\"MIN_VALUE\")\n val MIN_VALUE: Long = js(\"Kotlin.Long.MIN_VALUE\")\n\n @JsName(\"MAX_VALUE\")\n val MAX_VALUE: Long = js(\"Kotlin.Long.MAX_VALUE\")\n\n @JsName(\"SIZE_BYTES\")\n const val SIZE_BYTES = 8\n\n @JsName(\"SIZE_BITS\")\n const val SIZE_BITS = 64\n}\n\n@JsName(\"ShortCompanionObject\")\ninternal object ShortCompanionObject {\n @JsName(\"MIN_VALUE\")\n val MIN_VALUE: Short = -32768\n\n @JsName(\"MAX_VALUE\")\n val MAX_VALUE: Short = 32767\n\n @JsName(\"SIZE_BYTES\")\n const val SIZE_BYTES = 2\n\n @JsName(\"SIZE_BITS\")\n const val SIZE_BITS = 16\n}\n\n@JsName(\"ByteCompanionObject\")\ninternal object ByteCompanionObject {\n @JsName(\"MIN_VALUE\")\n val MIN_VALUE: Byte = -128\n\n @JsName(\"MAX_VALUE\")\n val MAX_VALUE: Byte = 127\n\n @JsName(\"SIZE_BYTES\")\n const val SIZE_BYTES = 1\n\n @JsName(\"SIZE_BITS\")\n const val SIZE_BITS = 8\n}\n\n@JsName(\"CharCompanionObject\")\ninternal object CharCompanionObject {\n @JsName(\"MIN_VALUE\")\n public const val MIN_VALUE: Char = '\\u0000'\n\n @JsName(\"MAX_VALUE\")\n public const val MAX_VALUE: Char = '\\uFFFF'\n\n @JsName(\"MIN_HIGH_SURROGATE\")\n public const val MIN_HIGH_SURROGATE: Char = '\\uD800'\n\n @JsName(\"MAX_HIGH_SURROGATE\")\n public const val MAX_HIGH_SURROGATE: Char = '\\uDBFF'\n\n @JsName(\"MIN_LOW_SURROGATE\")\n public const val MIN_LOW_SURROGATE: Char = '\\uDC00'\n\n @JsName(\"MAX_LOW_SURROGATE\")\n public const val MAX_LOW_SURROGATE: Char = '\\uDFFF'\n\n @JsName(\"MIN_SURROGATE\")\n public const val MIN_SURROGATE: Char = MIN_HIGH_SURROGATE\n\n @JsName(\"MAX_SURROGATE\")\n public const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE\n\n @JsName(\"SIZE_BYTES\")\n const val SIZE_BYTES = 2\n\n @JsName(\"SIZE_BITS\")\n const val SIZE_BITS = 16\n}\n\ninternal object StringCompanionObject {}\n\ninternal object BooleanCompanionObject {}\n\n","/*\n * Copyright 2010-2023 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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'any { it == element }' instead to continue using this behavior, or '.asList().contains(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"any { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\", hiddenSince = \"1.7\")\npublic operator fun FloatArray.contains(element: Float): Boolean {\n return any { it == element }\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'any { it == element }' instead to continue using this behavior, or '.asList().contains(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"any { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\", hiddenSince = \"1.7\")\npublic operator fun DoubleArray.contains(element: Double): Boolean {\n return any { it == element }\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.findLast(predicate: (Char) -> Boolean): Char? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 non-null value produced by [transform] function being applied to elements of this array in iteration order,\n * or throws [NoSuchElementException] if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.firstNotNullOf(transform: (T) -> R?): R {\n return firstNotNullOfOrNull(transform) ?: throw NoSuchElementException(\"No element of the array was transformed to a non-null value.\")\n}\n\n/**\n * Returns the first non-null value produced by [transform] function being applied to elements of this array in iteration order,\n * or `null` if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.firstNotNullOfOrNull(transform: (T) -> R?): R? {\n for (element in this) {\n val result = transform(element)\n if (result != null) {\n return result\n }\n }\n return null\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'indexOfFirst { it == element }' instead to continue using this behavior, or '.asList().indexOf(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"indexOfFirst { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\", hiddenSince = \"1.7\")\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 */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'indexOfFirst { it == element }' instead to continue using this behavior, or '.asList().indexOf(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"indexOfFirst { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\", hiddenSince = \"1.7\")\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'indexOfLast { it == element }' instead to continue using this behavior, or '.asList().lastIndexOf(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"indexOfLast { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\", hiddenSince = \"1.7\")\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 */\n@Deprecated(\"The function has unclear behavior when searching for NaN or zero values and will be removed soon. Use 'indexOfLast { it == element }' instead to continue using this behavior, or '.asList().lastIndexOf(element: T)' to get the same search behavior as in a list.\", ReplaceWith(\"indexOfLast { it == element }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\", hiddenSince = \"1.7\")\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Array.randomOrNull(): T? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.randomOrNull(): Byte? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.randomOrNull(): Short? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.randomOrNull(): Int? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.randomOrNull(): Long? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.randomOrNull(): Float? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.randomOrNull(): Double? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.randomOrNull(): Boolean? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.randomOrNull(): Char? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Array.randomOrNull(random: Random): T? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun ByteArray.randomOrNull(random: Random): Byte? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun ShortArray.randomOrNull(random: Random): Short? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun IntArray.randomOrNull(random: Random): Int? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun LongArray.randomOrNull(random: Random): Long? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun FloatArray.randomOrNull(random: Random): Float? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun DoubleArray.randomOrNull(random: Random): Double? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun BooleanArray.randomOrNull(random: Random): Boolean? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun CharArray.randomOrNull(random: Random): Char? {\n if (isEmpty())\n return null\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIsInstance\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 * \n * @sample samples.collections.Collections.Filtering.filterIsInstanceTo\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filterNotNull\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 * \n * @sample samples.collections.Collections.Filtering.filterNotNullTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun Array.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun ByteArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun ShortArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun IntArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun LongArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun FloatArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun DoubleArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun BooleanArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\npublic fun CharArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val midPoint = (fromIndex + toIndex) / 2\n if (fromIndex == midPoint) return\n var reverseIndex = toIndex - 1\n for (index in fromIndex until 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 * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun Array.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun BooleanArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place 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.4\")\npublic fun Array.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 * Randomly shuffles elements in this array in-place 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.4\")\npublic fun ByteArray.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 * Randomly shuffles elements in this array in-place 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.4\")\npublic fun ShortArray.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 * Randomly shuffles elements in this array in-place 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.4\")\npublic fun IntArray.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 * Randomly shuffles elements in this array in-place 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.4\")\npublic fun LongArray.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 * Randomly shuffles elements in this array in-place 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.4\")\npublic fun FloatArray.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 * Randomly shuffles elements in this array in-place 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.4\")\npublic fun DoubleArray.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 * Randomly shuffles elements in this array in-place 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.4\")\npublic fun BooleanArray.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 * Randomly shuffles elements in this array in-place 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.4\")\npublic fun CharArray.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 * 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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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\")\n@kotlin.internal.LowPriorityInOverloadResolution\npublic expect infix fun Array.contentDeepEquals(other: Array): Boolean\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 * The specified arrays are also considered deeply equal if both are `null`.\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.4\")\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\")\n@kotlin.internal.LowPriorityInOverloadResolution\npublic expect fun Array.contentDeepHashCode(): Int\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.4\")\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\")\n@kotlin.internal.LowPriorityInOverloadResolution\npublic expect fun Array.contentDeepToString(): String\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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@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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 a range in the array in-place.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArrayOfComparable\n */\n@SinceKotlin(\"1.4\")\npublic expect fun > Array.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun ByteArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun ShortArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun IntArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun LongArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun FloatArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun DoubleArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\npublic expect fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are 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 * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\npublic fun > Array.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sortWith(reverseOrder(), fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\npublic fun ByteArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\npublic fun ShortArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\npublic fun IntArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\npublic fun LongArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\npublic fun FloatArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\npublic fun DoubleArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\npublic fun CharArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\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 expect fun Array.sortWith(comparator: Comparator): Unit\n\n/**\n * Sorts a range in the array in-place with the given [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 */\npublic expect fun Array.sortWith(comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size): 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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesBy\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesByToWithValueTransform\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * \n * @sample samples.collections.Arrays.Transformations.associateArrayOfPrimitivesTo\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 * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.associateWith(valueSelector: (K) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.associateWith(valueSelector: (Byte) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.associateWith(valueSelector: (Short) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.associateWith(valueSelector: (Int) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.associateWith(valueSelector: (Long) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.associateWith(valueSelector: (Float) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.associateWith(valueSelector: (Double) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.associateWith(valueSelector: (Boolean) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.associateWith(valueSelector: (Char) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size.coerceAtMost(128)).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 array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Array.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 * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.associateWithTo(destination: M, valueSelector: (Byte) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.associateWithTo(destination: M, valueSelector: (Short) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.associateWithTo(destination: M, valueSelector: (Int) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.associateWithTo(destination: M, valueSelector: (Long) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.associateWithTo(destination: M, valueSelector: (Float) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.associateWithTo(destination: M, valueSelector: (Double) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.associateWithTo(destination: M, valueSelector: (Boolean) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.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 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 new [HashSet] of all elements.\n */\npublic fun Array.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun ByteArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun ShortArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun IntArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun LongArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun FloatArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun DoubleArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun BooleanArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun CharArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size.coerceAtMost(128))))\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 new [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 new [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 new [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 new [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 new [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 new [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 new [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 new [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 new [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.coerceAtMost(128))))\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun CharArray.flatMap(transform: (Char) -> 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 * @sample samples.collections.Collections.Transformations.flatMap\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequence\")\npublic inline fun Array.flatMap(transform: (T) -> Sequence): 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\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.flatMapIndexed(transform: (index: Int, T) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.flatMapIndexed(transform: (index: Int, Byte) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.flatMapIndexed(transform: (index: Int, Short) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.flatMapIndexed(transform: (index: Int, Int) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.flatMapIndexed(transform: (index: Int, Long) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.flatMapIndexed(transform: (index: Int, Float) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.flatMapIndexed(transform: (index: Int, Double) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.flatMapIndexed(transform: (index: Int, Boolean) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.flatMapIndexed(transform: (index: Int, Char) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequence\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.flatMapIndexed(transform: (index: Int, T) -> Sequence): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Array.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.flatMapIndexedTo(destination: C, transform: (index: Int, Byte) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.flatMapIndexedTo(destination: C, transform: (index: Int, Short) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.flatMapIndexedTo(destination: C, transform: (index: Int, Int) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.flatMapIndexedTo(destination: C, transform: (index: Int, Long) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.flatMapIndexedTo(destination: C, transform: (index: Int, Float) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.flatMapIndexedTo(destination: C, transform: (index: Int, Double) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.flatMapIndexedTo(destination: C, transform: (index: Int, Boolean) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.flatMapIndexedTo(destination: C, transform: (index: Int, Char) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequenceTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Array.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Sequence): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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 > 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 * 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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequenceTo\")\npublic inline fun > Array.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 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 * \n * @sample samples.collections.Collections.Transformations.mapNotNull\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 * Among equal elements of the given array, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * Among elements of the given array with equal keys, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source array.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a new [MutableSet] 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 return toCollection(LinkedHashSet(mapCapacity(size.coerceAtMost(128))))\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 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 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 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 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 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 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 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 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 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.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Array.max(): Double {\n if (isEmpty()) throw NoSuchElementException()\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Array.max(): Float {\n if (isEmpty()) throw NoSuchElementException()\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun > Array.max(): T {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ByteArray.max(): Byte {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ShortArray.max(): Short {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun IntArray.max(): Int {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun LongArray.max(): Long {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun FloatArray.max(): Float {\n if (isEmpty()) throw NoSuchElementException()\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun DoubleArray.max(): Double {\n if (isEmpty()) throw NoSuchElementException()\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun CharArray.max(): Char {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Array.maxBy(selector: (T) -> R): T {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > ByteArray.maxBy(selector: (Byte) -> R): Byte {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > ShortArray.maxBy(selector: (Short) -> R): Short {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > IntArray.maxBy(selector: (Int) -> R): Int {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > LongArray.maxBy(selector: (Long) -> R): Long {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > FloatArray.maxBy(selector: (Float) -> R): Float {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > DoubleArray.maxBy(selector: (Double) -> R): Double {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > BooleanArray.maxBy(selector: (Boolean) -> R): Boolean {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > CharArray.maxBy(selector: (Char) -> R): Char {\n if (isEmpty()) throw NoSuchElementException()\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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Array.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > ByteArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > ShortArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > IntArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > LongArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > FloatArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > DoubleArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > BooleanArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > CharArray.maxByOrNull(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 largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOf(selector: (T) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOf(selector: (Byte) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOf(selector: (Short) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOf(selector: (Int) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOf(selector: (Long) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOf(selector: (Float) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOf(selector: (Double) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOf(selector: (Boolean) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOf(selector: (Char) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOf(selector: (T) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOf(selector: (Byte) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOf(selector: (Short) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOf(selector: (Int) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOf(selector: (Long) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOf(selector: (Float) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOf(selector: (Double) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOf(selector: (Boolean) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOf(selector: (Char) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Array.maxOf(selector: (T) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.maxOf(selector: (Byte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.maxOf(selector: (Short) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.maxOf(selector: (Int) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.maxOf(selector: (Long) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.maxOf(selector: (Float) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.maxOf(selector: (Double) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.maxOf(selector: (Boolean) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.maxOf(selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOfOrNull(selector: (T) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOfOrNull(selector: (Byte) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOfOrNull(selector: (Short) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOfOrNull(selector: (Int) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOfOrNull(selector: (Long) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOfOrNull(selector: (Float) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOfOrNull(selector: (Double) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOfOrNull(selector: (Boolean) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOfOrNull(selector: (Char) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOfOrNull(selector: (T) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOfOrNull(selector: (Byte) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOfOrNull(selector: (Short) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOfOrNull(selector: (Int) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOfOrNull(selector: (Long) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOfOrNull(selector: (Float) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOfOrNull(selector: (Double) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOfOrNull(selector: (Boolean) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOfOrNull(selector: (Char) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Array.maxOfOrNull(selector: (T) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.maxOfOrNull(selector: (Byte) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.maxOfOrNull(selector: (Short) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.maxOfOrNull(selector: (Int) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.maxOfOrNull(selector: (Long) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.maxOfOrNull(selector: (Float) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.maxOfOrNull(selector: (Double) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.maxOfOrNull(selector: (Boolean) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.maxOfOrNull(selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOfWith(comparator: Comparator, selector: (T) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOfWith(comparator: Comparator, selector: (Byte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOfWith(comparator: Comparator, selector: (Short) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOfWith(comparator: Comparator, selector: (Int) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOfWith(comparator: Comparator, selector: (Long) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOfWith(comparator: Comparator, selector: (Float) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOfWith(comparator: Comparator, selector: (Double) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOfWith(comparator: Comparator, selector: (Boolean) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOfWith(comparator: Comparator, selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.maxOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.maxOfWithOrNull(comparator: Comparator, selector: (Byte) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.maxOfWithOrNull(comparator: Comparator, selector: (Short) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.maxOfWithOrNull(comparator: Comparator, selector: (Int) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.maxOfWithOrNull(comparator: Comparator, selector: (Long) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.maxOfWithOrNull(comparator: Comparator, selector: (Float) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.maxOfWithOrNull(comparator: Comparator, selector: (Double) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.maxOfWithOrNull(comparator: Comparator, selector: (Boolean) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.maxOfWithOrNull(comparator: Comparator, selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\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.4\")\npublic fun Array.maxOrNull(): Double? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(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.4\")\npublic fun Array.maxOrNull(): Float? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(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.4\")\npublic fun > Array.maxOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.maxOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.maxOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.maxOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.maxOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.maxOrNull(): Float? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(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.4\")\npublic fun DoubleArray.maxOrNull(): Double? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n max = maxOf(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.4\")\npublic fun CharArray.maxOrNull(): 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 having the largest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Array.maxWith(comparator: Comparator): T {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ByteArray.maxWith(comparator: Comparator): Byte {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ShortArray.maxWith(comparator: Comparator): Short {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun IntArray.maxWith(comparator: Comparator): Int {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun LongArray.maxWith(comparator: Comparator): Long {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun FloatArray.maxWith(comparator: Comparator): Float {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun DoubleArray.maxWith(comparator: Comparator): Double {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun BooleanArray.maxWith(comparator: Comparator): Boolean {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun CharArray.maxWith(comparator: Comparator): Char {\n if (isEmpty()) throw NoSuchElementException()\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.4\")\npublic fun Array.maxWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.maxWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.maxWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.maxWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.maxWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.maxWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.maxWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun BooleanArray.maxWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.maxWithOrNull(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.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Array.min(): Double {\n if (isEmpty()) throw NoSuchElementException()\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Array.min(): Float {\n if (isEmpty()) throw NoSuchElementException()\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun > Array.min(): T {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ByteArray.min(): Byte {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ShortArray.min(): Short {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun IntArray.min(): Int {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun LongArray.min(): Long {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun FloatArray.min(): Float {\n if (isEmpty()) throw NoSuchElementException()\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun DoubleArray.min(): Double {\n if (isEmpty()) throw NoSuchElementException()\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun CharArray.min(): Char {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Array.minBy(selector: (T) -> R): T {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > ByteArray.minBy(selector: (Byte) -> R): Byte {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > ShortArray.minBy(selector: (Short) -> R): Short {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > IntArray.minBy(selector: (Int) -> R): Int {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > LongArray.minBy(selector: (Long) -> R): Long {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > FloatArray.minBy(selector: (Float) -> R): Float {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > DoubleArray.minBy(selector: (Double) -> R): Double {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > BooleanArray.minBy(selector: (Boolean) -> R): Boolean {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > CharArray.minBy(selector: (Char) -> R): Char {\n if (isEmpty()) throw NoSuchElementException()\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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Array.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > ByteArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > ShortArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > IntArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > LongArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > FloatArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > DoubleArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > BooleanArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > CharArray.minByOrNull(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 smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOf(selector: (T) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOf(selector: (Byte) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOf(selector: (Short) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOf(selector: (Int) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOf(selector: (Long) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOf(selector: (Float) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOf(selector: (Double) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOf(selector: (Boolean) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOf(selector: (Char) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOf(selector: (T) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOf(selector: (Byte) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOf(selector: (Short) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOf(selector: (Int) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOf(selector: (Long) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOf(selector: (Float) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOf(selector: (Double) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOf(selector: (Boolean) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOf(selector: (Char) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Array.minOf(selector: (T) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.minOf(selector: (Byte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.minOf(selector: (Short) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.minOf(selector: (Int) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.minOf(selector: (Long) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.minOf(selector: (Float) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.minOf(selector: (Double) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.minOf(selector: (Boolean) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.minOf(selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOfOrNull(selector: (T) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOfOrNull(selector: (Byte) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOfOrNull(selector: (Short) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOfOrNull(selector: (Int) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOfOrNull(selector: (Long) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOfOrNull(selector: (Float) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOfOrNull(selector: (Double) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOfOrNull(selector: (Boolean) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOfOrNull(selector: (Char) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOfOrNull(selector: (T) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOfOrNull(selector: (Byte) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOfOrNull(selector: (Short) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOfOrNull(selector: (Int) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOfOrNull(selector: (Long) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOfOrNull(selector: (Float) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOfOrNull(selector: (Double) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOfOrNull(selector: (Boolean) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOfOrNull(selector: (Char) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Array.minOfOrNull(selector: (T) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ByteArray.minOfOrNull(selector: (Byte) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > ShortArray.minOfOrNull(selector: (Short) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > IntArray.minOfOrNull(selector: (Int) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > LongArray.minOfOrNull(selector: (Long) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > FloatArray.minOfOrNull(selector: (Float) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > DoubleArray.minOfOrNull(selector: (Double) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > BooleanArray.minOfOrNull(selector: (Boolean) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharArray.minOfOrNull(selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOfWith(comparator: Comparator, selector: (T) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOfWith(comparator: Comparator, selector: (Byte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOfWith(comparator: Comparator, selector: (Short) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOfWith(comparator: Comparator, selector: (Int) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOfWith(comparator: Comparator, selector: (Long) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOfWith(comparator: Comparator, selector: (Float) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOfWith(comparator: Comparator, selector: (Double) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOfWith(comparator: Comparator, selector: (Boolean) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOfWith(comparator: Comparator, selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Array.minOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.minOfWithOrNull(comparator: Comparator, selector: (Byte) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.minOfWithOrNull(comparator: Comparator, selector: (Short) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.minOfWithOrNull(comparator: Comparator, selector: (Int) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.minOfWithOrNull(comparator: Comparator, selector: (Long) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.minOfWithOrNull(comparator: Comparator, selector: (Float) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.minOfWithOrNull(comparator: Comparator, selector: (Double) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.minOfWithOrNull(comparator: Comparator, selector: (Boolean) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.minOfWithOrNull(comparator: Comparator, selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\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.4\")\npublic fun Array.minOrNull(): Double? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(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.4\")\npublic fun Array.minOrNull(): Float? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(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.4\")\npublic fun > Array.minOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.minOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.minOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.minOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.minOrNull(): 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 */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.minOrNull(): Float? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(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.4\")\npublic fun DoubleArray.minOrNull(): Double? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n min = minOf(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.4\")\npublic fun CharArray.minOrNull(): 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 having the smallest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Array.minWith(comparator: Comparator): T {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ByteArray.minWith(comparator: Comparator): Byte {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ShortArray.minWith(comparator: Comparator): Short {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun IntArray.minWith(comparator: Comparator): Int {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun LongArray.minWith(comparator: Comparator): Long {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun FloatArray.minWith(comparator: Comparator): Float {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun DoubleArray.minWith(comparator: Comparator): Double {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun BooleanArray.minWith(comparator: Comparator): Boolean {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun CharArray.minWith(comparator: Comparator): Char {\n if (isEmpty()) throw NoSuchElementException()\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.4\")\npublic fun Array.minWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun ByteArray.minWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun ShortArray.minWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun IntArray.minWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun LongArray.minWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun FloatArray.minWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun DoubleArray.minWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun BooleanArray.minWithOrNull(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 */\n@SinceKotlin(\"1.4\")\npublic fun CharArray.minWithOrNull(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 * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.onEach(action: (T) -> Unit): Array {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.onEach(action: (Byte) -> Unit): ByteArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.onEach(action: (Short) -> Unit): ShortArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.onEach(action: (Int) -> Unit): IntArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.onEach(action: (Long) -> Unit): LongArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.onEach(action: (Float) -> Unit): FloatArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.onEach(action: (Double) -> Unit): DoubleArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.onEach(action: (Boolean) -> Unit): BooleanArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.onEach(action: (Char) -> Unit): CharArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.onEachIndexed(action: (index: Int, T) -> Unit): Array {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.onEachIndexed(action: (index: Int, Byte) -> Unit): ByteArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.onEachIndexed(action: (index: Int, Short) -> Unit): ShortArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.onEachIndexed(action: (index: Int, Int) -> Unit): IntArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.onEachIndexed(action: (index: Int, Long) -> Unit): LongArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.onEachIndexed(action: (index: Int, Float) -> Unit): FloatArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.onEachIndexed(action: (index: Int, Double) -> Unit): DoubleArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.onEachIndexed(action: (index: Int, Boolean) -> Unit): BooleanArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.onEachIndexed(action: (index: Int, Char) -> Unit): CharArray {\n return apply { forEachIndexed(action) }\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.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.reduceIndexedOrNull(operation: (index: Int, acc: S, T) -> S): S? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun ByteArray.reduceIndexedOrNull(operation: (index: Int, acc: Byte, Byte) -> Byte): Byte? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun ShortArray.reduceIndexedOrNull(operation: (index: Int, acc: Short, Short) -> Short): Short? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun IntArray.reduceIndexedOrNull(operation: (index: Int, acc: Int, Int) -> Int): Int? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun LongArray.reduceIndexedOrNull(operation: (index: Int, acc: Long, Long) -> Long): Long? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun FloatArray.reduceIndexedOrNull(operation: (index: Int, acc: Float, Float) -> Float): Float? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun DoubleArray.reduceIndexedOrNull(operation: (index: Int, acc: Double, Double) -> Double): Double? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun BooleanArray.reduceIndexedOrNull(operation: (index: Int, acc: Boolean, Boolean) -> Boolean): Boolean? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharArray.reduceIndexedOrNull(operation: (index: Int, acc: Char, Char) -> Char): Char? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.reduceOrNull(operation: (acc: S, T) -> S): S? {\n if (isEmpty())\n return null\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\n * to current accumulator value and each element.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun ByteArray.reduceOrNull(operation: (acc: Byte, Byte) -> Byte): Byte? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun ShortArray.reduceOrNull(operation: (acc: Short, Short) -> Short): Short? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun IntArray.reduceOrNull(operation: (acc: Int, Int) -> Int): Int? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun LongArray.reduceOrNull(operation: (acc: Long, Long) -> Long): Long? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun FloatArray.reduceOrNull(operation: (acc: Float, Float) -> Float): Float? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun DoubleArray.reduceOrNull(operation: (acc: Double, Double) -> Double): Double? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun BooleanArray.reduceOrNull(operation: (acc: Boolean, Boolean) -> Boolean): Boolean? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharArray.reduceOrNull(operation: (acc: Char, Char) -> Char): Char? {\n if (isEmpty())\n return null\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 last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 * Accumulates value starting with the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.reduceRightIndexedOrNull(operation: (index: Int, T, acc: S) -> S): S? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun ByteArray.reduceRightIndexedOrNull(operation: (index: Int, Byte, acc: Byte) -> Byte): Byte? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun ShortArray.reduceRightIndexedOrNull(operation: (index: Int, Short, acc: Short) -> Short): Short? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun IntArray.reduceRightIndexedOrNull(operation: (index: Int, Int, acc: Int) -> Int): Int? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun LongArray.reduceRightIndexedOrNull(operation: (index: Int, Long, acc: Long) -> Long): Long? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun FloatArray.reduceRightIndexedOrNull(operation: (index: Int, Float, acc: Float) -> Float): Float? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun DoubleArray.reduceRightIndexedOrNull(operation: (index: Int, Double, acc: Double) -> Double): Double? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun BooleanArray.reduceRightIndexedOrNull(operation: (index: Int, Boolean, acc: Boolean) -> Boolean): Boolean? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharArray.reduceRightIndexedOrNull(operation: (index: Int, Char, acc: Char) -> Char): Char? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.reduceRightOrNull(operation: (T, acc: S) -> S): S? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun ByteArray.reduceRightOrNull(operation: (Byte, acc: Byte) -> Byte): Byte? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun ShortArray.reduceRightOrNull(operation: (Short, acc: Short) -> Short): Short? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun IntArray.reduceRightOrNull(operation: (Int, acc: Int) -> Int): Int? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun LongArray.reduceRightOrNull(operation: (Long, acc: Long) -> Long): Long? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun FloatArray.reduceRightOrNull(operation: (Float, acc: Float) -> Float): Float? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun DoubleArray.reduceRightOrNull(operation: (Double, acc: Double) -> Double): Double? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun BooleanArray.reduceRightOrNull(operation: (Boolean, acc: Boolean) -> Boolean): Boolean? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharArray.reduceRightOrNull(operation: (Char, acc: Char) -> Char): Char? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.runningFold(initial: R, operation: (acc: R, T) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.runningFold(initial: R, operation: (acc: R, Byte) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.runningFold(initial: R, operation: (acc: R, Short) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.runningFold(initial: R, operation: (acc: R, Int) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.runningFold(initial: R, operation: (acc: R, Long) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.runningFold(initial: R, operation: (acc: R, Float) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.runningFold(initial: R, operation: (acc: R, Double) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.runningFold(initial: R, operation: (acc: R, Boolean) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.runningFold(initial: R, operation: (acc: R, Char) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Byte) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Short) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Int) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Long) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Float) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Double) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Boolean) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and the element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.runningReduce(operation: (acc: S, T) -> S): List {\n if (isEmpty()) return emptyList()\n var accumulator: S = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.runningReduce(operation: (acc: Byte, Byte) -> Byte): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.runningReduce(operation: (acc: Short, Short) -> Short): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.runningReduce(operation: (acc: Int, Int) -> Int): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.runningReduce(operation: (acc: Long, Long) -> Long): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.runningReduce(operation: (acc: Float, Float) -> Float): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.runningReduce(operation: (acc: Double, Double) -> Double): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.runningReduce(operation: (acc: Boolean, Boolean) -> Boolean): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.runningReduce(operation: (acc: Char, Char) -> Char): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Array.runningReduceIndexed(operation: (index: Int, acc: S, T) -> S): List {\n if (isEmpty()) return emptyList()\n var accumulator: S = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.runningReduceIndexed(operation: (index: Int, acc: Byte, Byte) -> Byte): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.runningReduceIndexed(operation: (index: Int, acc: Short, Short) -> Short): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.runningReduceIndexed(operation: (index: Int, acc: Int, Int) -> Int): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.runningReduceIndexed(operation: (index: Int, acc: Long, Long) -> Long): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.runningReduceIndexed(operation: (index: Int, acc: Float, Float) -> Float): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.runningReduceIndexed(operation: (index: Int, acc: Double, Double) -> Double): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.runningReduceIndexed(operation: (index: Int, acc: Boolean, Boolean) -> Boolean): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.runningReduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.scan(initial: R, operation: (acc: R, T) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.scan(initial: R, operation: (acc: R, Byte) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.scan(initial: R, operation: (acc: R, Short) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.scan(initial: R, operation: (acc: R, Int) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.scan(initial: R, operation: (acc: R, Long) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.scan(initial: R, operation: (acc: R, Float) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.scan(initial: R, operation: (acc: R, Double) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.scan(initial: R, operation: (acc: R, Boolean) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.scan(initial: R, operation: (acc: R, Char) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Array.scanIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Byte) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Short) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Int) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Long) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Float) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Double) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Boolean) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.scanIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> Long): Long {\n var sum: Long = 0.toLong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Array.sumOf(selector: (T) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sumOf(selector: (Byte) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sumOf(selector: (Short) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sumOf(selector: (Int) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sumOf(selector: (Long) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sumOf(selector: (Float) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sumOf(selector: (Double) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.sumOf(selector: (Boolean) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sumOf(selector: (Char) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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 * \n * @sample samples.collections.Arrays.Transformations.partitionArrayOfPrimitives\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-2023 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 the first element.\n * \n * @throws NoSuchElementException if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun IntProgression.first(): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.first\n}\n\n/**\n * Returns the first element.\n * \n * @throws NoSuchElementException if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun LongProgression.first(): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.first\n}\n\n/**\n * Returns the first element.\n * \n * @throws NoSuchElementException if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun CharProgression.first(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.first\n}\n\n/**\n * Returns the first element, or `null` if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun IntProgression.firstOrNull(): Int? {\n return if (isEmpty()) null else this.first\n}\n\n/**\n * Returns the first element, or `null` if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun LongProgression.firstOrNull(): Long? {\n return if (isEmpty()) null else this.first\n}\n\n/**\n * Returns the first element, or `null` if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun CharProgression.firstOrNull(): Char? {\n return if (isEmpty()) null else this.first\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun IntProgression.last(): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.last\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun LongProgression.last(): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.last\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun CharProgression.last(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.last\n}\n\n/**\n * Returns the last element, or `null` if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun IntProgression.lastOrNull(): Int? {\n return if (isEmpty()) null else this.last\n}\n\n/**\n * Returns the last element, or `null` if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun LongProgression.lastOrNull(): Long? {\n return if (isEmpty()) null else this.last\n}\n\n/**\n * Returns the last element, or `null` if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun CharProgression.lastOrNull(): Char? {\n return if (isEmpty()) null else this.last\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 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.code, last.code + 1).toChar()\n } catch(e: IllegalArgumentException) {\n throw NoSuchElementException(e.message)\n }\n}\n\n/**\n * Returns a random element from this range, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun IntRange.randomOrNull(): Int? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this range, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun LongRange.randomOrNull(): Long? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this range, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharRange.randomOrNull(): Char? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun IntRange.randomOrNull(random: Random): Int? {\n if (isEmpty())\n return null\n return random.nextInt(this)\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun LongRange.randomOrNull(random: Random): Long? {\n if (isEmpty())\n return null\n return random.nextLong(this)\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun CharRange.randomOrNull(random: Random): Char? {\n if (isEmpty())\n return null\n return random.nextInt(first.code, last.code + 1).toChar()\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@kotlin.jvm.JvmName(\"intRangeContains\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.contains(value: Byte): Boolean {\n return contains(value.toShort())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntRange.contains(value: Byte): Boolean {\n return (this as ClosedRange).contains(value)\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongRange.contains(value: Byte): Boolean {\n return (this as ClosedRange).contains(value)\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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(\"doubleRangeContains\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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(\"longRangeContains\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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@kotlin.internal.InlineOnly\npublic inline operator fun LongRange.contains(value: Int): Boolean {\n return (this as ClosedRange).contains(value)\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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@kotlin.internal.InlineOnly\npublic inline operator fun IntRange.contains(value: Long): Boolean {\n return (this as ClosedRange).contains(value)\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\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@DeprecatedSinceKotlin(warningSince = \"1.3\", errorSince = \"1.4\", hiddenSince = \"1.5\")\n@kotlin.jvm.JvmName(\"floatRangeContains\")\npublic operator fun ClosedRange.contains(value: Short): 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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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\")\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun OpenEndRange.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@kotlin.internal.InlineOnly\npublic inline operator fun IntRange.contains(value: Short): Boolean {\n return (this as ClosedRange).contains(value)\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongRange.contains(value: Short): Boolean {\n return (this as ClosedRange).contains(value)\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.toInt().toByte() else null\n}\n\ninternal fun Float.toByteExactOrNull(): Byte? {\n return if (this in Byte.MIN_VALUE.toFloat()..Byte.MAX_VALUE.toFloat()) this.toInt().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.toInt().toShort() else null\n}\n\ninternal fun Float.toShortExactOrNull(): Short? {\n return if (this in Short.MIN_VALUE.toFloat()..Short.MAX_VALUE.toFloat()) this.toInt().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-2023 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.*\nimport kotlin.jvm.*\n\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@JvmInline\npublic value class UByte @kotlin.internal.IntrinsicConstEvaluation @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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = this.toULong().div(other)\n\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): UInt = this.toUInt().rem(other.toUInt())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): UInt = this.toUInt().rem(other.toUInt())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): UInt = this.toUInt().rem(other)\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = this.toULong().rem(other)\n\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UByte): UInt = this.toUInt().floorDiv(other.toUInt())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UShort): UInt = this.toUInt().floorDiv(other.toUInt())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UInt): UInt = this.toUInt().floorDiv(other)\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: ULong): ULong = this.toULong().floorDiv(other)\n\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UByte): UByte = this.toUInt().mod(other.toUInt()).toUByte()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UShort): UShort = this.toUInt().mod(other.toUInt()).toUShort()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UInt): UInt = this.toUInt().mod(other)\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: ULong): ULong = this.toULong().mod(other)\n\n /**\n * Returns this value incremented by one.\n *\n * @sample samples.misc.Builtins.inc\n */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): UByte = UByte(data.inc())\n\n /**\n * Returns this value decremented by one.\n *\n * @sample samples.misc.Builtins.dec\n */\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 /**\n * Creates a range from this value up to but excluding the specified [other] value.\n *\n * If the [other] value is less than or equal to `this` value, then the returned range is empty.\n */\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n @kotlin.internal.InlineOnly\n public inline operator fun rangeUntil(other: UByte): UIntRange = this.toUInt() until 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Long.toUByte(): UByte = UByte(this.toByte())\n","/*\n * Copyright 2010-2023 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.*\nimport kotlin.jvm.*\n\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@JvmInline\npublic value class UInt @kotlin.internal.IntrinsicConstEvaluation @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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UInt): UInt = uintDivide(this, other)\n /** Divides this value by the other value, truncating the result to an integer that is closer to zero. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = this.toULong().div(other)\n\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): UInt = this.rem(other.toUInt())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): UInt = this.rem(other.toUInt())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): UInt = uintRemainder(this, other)\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = this.toULong().rem(other)\n\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UByte): UInt = this.floorDiv(other.toUInt())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UShort): UInt = this.floorDiv(other.toUInt())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UInt): UInt = div(other)\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: ULong): ULong = this.toULong().floorDiv(other)\n\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UByte): UByte = this.mod(other.toUInt()).toUByte()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UShort): UShort = this.mod(other.toUInt()).toUShort()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UInt): UInt = rem(other)\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: ULong): ULong = this.toULong().mod(other)\n\n /**\n * Returns this value incremented by one.\n *\n * @sample samples.misc.Builtins.inc\n */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): UInt = UInt(data.inc())\n\n /**\n * Returns this value decremented by one.\n *\n * @sample samples.misc.Builtins.dec\n */\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 /**\n * Creates a range from this value up to but excluding the specified [other] value.\n *\n * If the [other] value is less than or equal to `this` value, then the returned range is empty.\n */\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n @kotlin.internal.InlineOnly\n public inline operator fun rangeUntil(other: UInt): UIntRange = this until other\n\n /**\n * Shifts this value left by the [bitCount] number of bits.\n *\n * Note that only the five lowest-order bits of the [bitCount] are used as the shift distance.\n * The shift distance actually used is therefore always in the range `0..31`.\n */\n @kotlin.internal.InlineOnly\n public inline infix fun shl(bitCount: Int): UInt = UInt(data shl bitCount)\n\n /**\n * Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros.\n *\n * Note that only the five lowest-order bits of the [bitCount] are used as the shift distance.\n * The shift distance actually used is therefore always in the range `0..31`.\n */\n @kotlin.internal.InlineOnly\n public inline infix fun shr(bitCount: Int): UInt = UInt(data ushr bitCount)\n\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Double.toUInt(): UInt = doubleToUInt(this)\n","/*\n * Copyright 2010-2023 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.*\nimport kotlin.jvm.*\n\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@JvmInline\npublic value class UShort @kotlin.internal.IntrinsicConstEvaluation @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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = this.toULong().div(other)\n\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): UInt = this.toUInt().rem(other.toUInt())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): UInt = this.toUInt().rem(other.toUInt())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): UInt = this.toUInt().rem(other)\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = this.toULong().rem(other)\n\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UByte): UInt = this.toUInt().floorDiv(other.toUInt())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UShort): UInt = this.toUInt().floorDiv(other.toUInt())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UInt): UInt = this.toUInt().floorDiv(other)\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: ULong): ULong = this.toULong().floorDiv(other)\n\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UByte): UByte = this.toUInt().mod(other.toUInt()).toUByte()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UShort): UShort = this.toUInt().mod(other.toUInt()).toUShort()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UInt): UInt = this.toUInt().mod(other)\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: ULong): ULong = this.toULong().mod(other)\n\n /**\n * Returns this value incremented by one.\n *\n * @sample samples.misc.Builtins.inc\n */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): UShort = UShort(data.inc())\n\n /**\n * Returns this value decremented by one.\n *\n * @sample samples.misc.Builtins.dec\n */\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 /**\n * Creates a range from this value up to but excluding the specified [other] value.\n *\n * If the [other] value is less than or equal to `this` value, then the returned range is empty.\n */\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n @kotlin.internal.InlineOnly\n public inline operator fun rangeUntil(other: UShort): UIntRange = this.toUInt() until 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Long.toUShort(): UShort = UShort(this.toShort())\n","/*\n * Copyright 2010-2023 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@file:OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\nimport kotlin.random.Random\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 a new read-only list containing only the specified object [element].\n *\n * The returned list is serializable (JVM).\n *\n * @sample samples.collections.Collections.Lists.singletonReadOnlyList\n */\n@SinceKotlin(\"1.9\")\npublic expect fun listOf(element: T): List\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 * Builds a new read-only [List] by populating a [MutableList] using the given [builderAction]\n * and returning a read-only list with the same elements.\n *\n * The list passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * The returned list is serializable (JVM).\n *\n * @sample samples.collections.Builders.Lists.buildListSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildList(@BuilderInference builderAction: MutableList.() -> Unit): List {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildListInternal(builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildListInternal(builderAction: MutableList.() -> Unit): List\n\n/**\n * Builds a new read-only [List] by populating a [MutableList] using the given [builderAction]\n * and returning a read-only list with the same elements.\n *\n * The list passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * The returned list is serializable (JVM).\n *\n * [capacity] is used to hint the expected number of elements added in the [builderAction].\n *\n * @throws IllegalArgumentException if the given [capacity] is negative.\n *\n * @sample samples.collections.Builders.Lists.buildListSampleWithCapacity\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildList(capacity: Int, @BuilderInference builderAction: MutableList.() -> Unit): List {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildListInternal(capacity, builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildListInternal(capacity: Int, builderAction: MutableList.() -> Unit): List\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\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\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-2023 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@file:OptIn(kotlin.experimental.ExperimentalTypeInference::class)\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 a new read-only map, mapping only the specified key to the\n * specified value.\n *\n * The returned map is serializable (JVM).\n *\n * @sample samples.collections.Maps.Instantiation.mapFromPairs\n */\n@SinceKotlin(\"1.9\")\npublic expect fun mapOf(pair: Pair): Map\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 * @sample samples.collections.Maps.Instantiation.emptyHashMap\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 * Builds a new read-only [Map] by populating a [MutableMap] using the given [builderAction]\n * and returning a read-only map with the same key-value pairs.\n *\n * The map passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * Entries of the map are iterated in the order they were added by the [builderAction].\n *\n * The returned map is serializable (JVM).\n *\n * @sample samples.collections.Builders.Maps.buildMapSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildMap(@BuilderInference builderAction: MutableMap.() -> Unit): Map {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildMapInternal(builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildMapInternal(builderAction: MutableMap.() -> Unit): Map\n\n/**\n * Builds a new read-only [Map] by populating a [MutableMap] using the given [builderAction]\n * and returning a read-only map with the same key-value pairs.\n *\n * The map passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * [capacity] is used to hint the expected number of pairs added in the [builderAction].\n *\n * Entries of the map are iterated in the order they were added by the [builderAction].\n *\n * The returned map is serializable (JVM).\n *\n * @throws IllegalArgumentException if the given [capacity] is negative.\n *\n * @sample samples.collections.Builders.Maps.buildMapSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildMap(capacity: Int, @BuilderInference builderAction: MutableMap.() -> Unit): Map {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildMapInternal(capacity, builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildMapInternal(capacity: Int, builderAction: MutableMap.() -> Unit): Map\n\n/**\n * Calculate the initial capacity of a map.\n */\n@PublishedApi\ninternal expect fun mapCapacity(expectedSize: Int): Int\n\n/**\n * Returns `true` if this map is not empty.\n * @sample samples.collections.Maps.Usage.mapIsNotEmpty\n */\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 * @sample samples.collections.Maps.Usage.containsKey\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] if the value is present and not `null`.\n * Otherwise, returns the result of the [defaultValue] function.\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 value is present and not `null`.\n * Otherwise, calls the [defaultValue] function,\n * puts its result into the map under the given key and returns the call result.\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-2023 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@file:OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\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 a new read-only set containing only the specified object [element].\n *\n * The returned set is serializable (JVM).\n *\n * @sample samples.collections.Collections.Sets.singletonReadOnlySet\n */\n@SinceKotlin(\"1.9\")\npublic expect fun setOf(element: T): Set\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/**\n * Returns an empty new [LinkedHashSet].\n * @sample samples.collections.Collections.Sets.emptyLinkedHashSet\n */\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 * @sample samples.collections.Collections.Sets.linkedHashSet\n */\npublic fun linkedSetOf(vararg elements: T): LinkedHashSet = elements.toCollection(LinkedHashSet(mapCapacity(elements.size)))\n\n/**\n * Returns a new read-only set either with single given element, if it is not null, or empty set if the element is null.\n * The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.setOfNotNull\n */\n@SinceKotlin(\"1.4\")\npublic fun setOfNotNull(element: T?): Set = if (element != null) setOf(element) else emptySet()\n\n/**\n * Returns a new read-only set only with those given elements, that are not null.\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.setOfNotNull\n */\n@SinceKotlin(\"1.4\")\npublic fun setOfNotNull(vararg elements: T?): Set {\n return elements.filterNotNullTo(LinkedHashSet())\n}\n\n/**\n * Builds a new read-only [Set] by populating a [MutableSet] using the given [builderAction]\n * and returning a read-only set with the same elements.\n *\n * The set passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * Elements of the set are iterated in the order they were added by the [builderAction].\n *\n * The returned set is serializable (JVM).\n *\n * @sample samples.collections.Builders.Sets.buildSetSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildSet(@BuilderInference builderAction: MutableSet.() -> Unit): Set {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildSetInternal(builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildSetInternal(builderAction: MutableSet.() -> Unit): Set\n\n/**\n * Builds a new read-only [Set] by populating a [MutableSet] using the given [builderAction]\n * and returning a read-only set with the same elements.\n *\n * The set passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * [capacity] is used to hint the expected number of elements added in the [builderAction].\n *\n * Elements of the set are iterated in the order they were added by the [builderAction].\n *\n * The returned set is serializable (JVM).\n *\n * @throws IllegalArgumentException if the given [capacity] is negative.\n *\n * @sample samples.collections.Builders.Sets.buildSetSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildSet(capacity: Int, @BuilderInference builderAction: MutableSet.() -> Unit): Set {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildSetInternal(capacity, builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildSetInternal(capacity: Int, builderAction: MutableSet.() -> Unit): Set\n\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-2023 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, OpenEndRange {\n override val start: Char get() = first\n override val endInclusive: Char get() = last\n \n @Deprecated(\"Can throw an exception when it's impossible to represent the value with Char type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.\")\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n override val endExclusive: Char get() {\n if (last == Char.MAX_VALUE) error(\"Cannot return the exclusive upper bound of a range that includes MAX_VALUE.\")\n return last + 1\n }\n\n override fun contains(value: Char): Boolean = first <= value && value <= last\n\n /** \n * Checks whether the range is empty.\n *\n * The range is empty if its start value is greater than the end value.\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.code + last.code)\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, OpenEndRange {\n override val start: Int get() = first\n override val endInclusive: Int get() = last\n \n @Deprecated(\"Can throw an exception when it's impossible to represent the value with Int type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.\")\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n override val endExclusive: Int get() {\n if (last == Int.MAX_VALUE) error(\"Cannot return the exclusive upper bound of a range that includes MAX_VALUE.\")\n return last + 1\n }\n\n override fun contains(value: Int): Boolean = first <= value && value <= last\n\n /** \n * Checks whether the range is empty.\n *\n * The range is empty if its start value is greater than the end value.\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, OpenEndRange {\n override val start: Long get() = first\n override val endInclusive: Long get() = last\n \n @Deprecated(\"Can throw an exception when it's impossible to represent the value with Long type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.\")\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n override val endExclusive: Long get() {\n if (last == Long.MAX_VALUE) error(\"Cannot return the exclusive upper bound of a range that includes MAX_VALUE.\")\n return last + 1\n }\n\n override fun contains(value: Long): Boolean = first <= value && value <= last\n\n /** \n * Checks whether the range is empty.\n *\n * The range is empty if its start value is greater than the end value.\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-2023 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.native.concurrent.SharedImmutable\n\nprivate const val LOWER_CASE_HEX_DIGITS = \"0123456789abcdef\"\nprivate const val UPPER_CASE_HEX_DIGITS = \"0123456789ABCDEF\"\n\n// case-insensitive parsing\n@SharedImmutable\nprivate val HEX_DIGITS_TO_DECIMAL = IntArray(128) { -1 }.apply {\n LOWER_CASE_HEX_DIGITS.forEachIndexed { index, char -> this[char.code] = index }\n UPPER_CASE_HEX_DIGITS.forEachIndexed { index, char -> this[char.code] = index }\n}\n\n// -------------------------- format and parse ByteArray --------------------------\n\n/**\n * Formats bytes in this array using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.BytesHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if the result length is more than [String] maximum capacity.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun ByteArray.toHexString(format: HexFormat = HexFormat.Default): String = toHexString(0, size, format)\n\n/**\n * Formats bytes in this array using the specified [HexFormat].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.BytesHexFormat] affect formatting.\n *\n * @param startIndex the beginning (inclusive) of the subrange to format, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to format, size of this array by default.\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this array indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException if the result length is more than [String] maximum capacity.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun ByteArray.toHexString(\n startIndex: Int = 0,\n endIndex: Int = size,\n format: HexFormat = HexFormat.Default\n): String {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, size)\n\n if (startIndex == endIndex) {\n return \"\"\n }\n\n val digits = if (format.upperCase) UPPER_CASE_HEX_DIGITS else LOWER_CASE_HEX_DIGITS\n\n val bytesFormat = format.bytes\n val bytesPerLine = bytesFormat.bytesPerLine\n val bytesPerGroup = bytesFormat.bytesPerGroup\n val bytePrefix = bytesFormat.bytePrefix\n val byteSuffix = bytesFormat.byteSuffix\n val byteSeparator = bytesFormat.byteSeparator\n val groupSeparator = bytesFormat.groupSeparator\n\n val formatLength = formattedStringLength(\n totalBytes = endIndex - startIndex,\n bytesPerLine,\n bytesPerGroup,\n groupSeparator.length,\n byteSeparator.length,\n bytePrefix.length,\n byteSuffix.length\n )\n\n var indexInLine = 0\n var indexInGroup = 0\n\n return buildString(formatLength) {\n for (i in startIndex until endIndex) {\n val byte = this@toHexString[i].toInt() and 0xFF\n\n if (indexInLine == bytesPerLine) {\n append('\\n')\n indexInLine = 0\n indexInGroup = 0\n } else if (indexInGroup == bytesPerGroup) {\n append(groupSeparator)\n indexInGroup = 0\n }\n if (indexInGroup != 0) {\n append(byteSeparator)\n }\n\n append(bytePrefix)\n append(digits[byte shr 4])\n append(digits[byte and 0xF])\n append(byteSuffix)\n\n indexInGroup += 1\n indexInLine += 1\n }\n\n check(formatLength == length)\n }\n}\n\n// Declared internal for testing\ninternal fun formattedStringLength(\n totalBytes: Int,\n bytesPerLine: Int,\n bytesPerGroup: Int,\n groupSeparatorLength: Int,\n byteSeparatorLength: Int,\n bytePrefixLength: Int,\n byteSuffixLength: Int\n): Int {\n require(totalBytes > 0)\n // By contract bytesPerLine and bytesPerGroup are > 0\n\n val lineSeparators = (totalBytes - 1) / bytesPerLine\n val groupSeparators = run {\n val groupSeparatorsPerLine = (bytesPerLine - 1) / bytesPerGroup\n val bytesInLastLine = (totalBytes % bytesPerLine).let { if (it == 0) bytesPerLine else it }\n val groupSeparatorsInLastLine = (bytesInLastLine - 1) / bytesPerGroup\n lineSeparators * groupSeparatorsPerLine + groupSeparatorsInLastLine\n }\n val byteSeparators = totalBytes - 1 - lineSeparators - groupSeparators\n\n // The max totalLength is achieved when\n // totalBytes, bytePrefix/Suffix/Separator.length = Int.MAX_VALUE.\n // The result is 3 * Int.MAX_VALUE * Int.MAX_VALUE + Int.MAX_VALUE,\n // which is > Long.MAX_VALUE, but < ULong.MAX_VALUE.\n\n val totalLength: Long = lineSeparators.toLong() /* * lineSeparator.length = 1 */ +\n groupSeparators.toLong() * groupSeparatorLength.toLong() +\n byteSeparators.toLong() * byteSeparatorLength.toLong() +\n totalBytes.toLong() * (bytePrefixLength.toLong() + 2L + byteSuffixLength.toLong())\n\n if (totalLength !in 0..Int.MAX_VALUE) {\n // TODO: Common OutOfMemoryError?\n throw IllegalArgumentException(\"The resulting string length is too big: ${totalLength.toULong()}\")\n }\n\n return totalLength.toInt()\n}\n\n/**\n * Parses bytes from this string using the specified [HexFormat].\n *\n * Note that only [HexFormat.BytesHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n * Also, any of the char sequences CRLF, LF and CR is considered a valid line separator.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun String.hexToByteArray(format: HexFormat = HexFormat.Default): ByteArray = hexToByteArray(0, length, format)\n\n/**\n * Parses bytes from this string using the specified [HexFormat].\n *\n * Note that only [HexFormat.BytesHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n * Also, any of the char sequences CRLF, LF and CR is considered a valid line separator.\n *\n * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\nprivate fun String.hexToByteArray(\n startIndex: Int = 0,\n endIndex: Int = length,\n format: HexFormat = HexFormat.Default\n): ByteArray {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n\n if (startIndex == endIndex) {\n return byteArrayOf()\n }\n\n val bytesFormat = format.bytes\n val bytesPerLine = bytesFormat.bytesPerLine\n val bytesPerGroup = bytesFormat.bytesPerGroup\n val bytePrefix = bytesFormat.bytePrefix\n val byteSuffix = bytesFormat.byteSuffix\n val byteSeparator = bytesFormat.byteSeparator\n val groupSeparator = bytesFormat.groupSeparator\n\n val resultCapacity = parsedByteArrayMaxSize(\n stringLength = endIndex - startIndex,\n bytesPerLine,\n bytesPerGroup,\n groupSeparator.length,\n byteSeparator.length,\n bytePrefix.length,\n byteSuffix.length\n )\n val result = ByteArray(resultCapacity)\n\n var i = startIndex\n var byteIndex = 0\n var indexInLine = 0\n var indexInGroup = 0\n\n while (i < endIndex) {\n if (indexInLine == bytesPerLine) {\n i = checkNewLineAt(i, endIndex)\n indexInLine = 0\n indexInGroup = 0\n } else if (indexInGroup == bytesPerGroup) {\n i = checkContainsAt(groupSeparator, i, endIndex, \"group separator\")\n indexInGroup = 0\n } else if (indexInGroup != 0) {\n i = checkContainsAt(byteSeparator, i, endIndex, \"byte separator\")\n }\n indexInLine += 1\n indexInGroup += 1\n\n i = checkContainsAt(bytePrefix, i, endIndex, \"byte prefix\")\n\n checkHexLength(i, (i + 2).coerceAtMost(endIndex), maxDigits = 2, requireMaxLength = true)\n\n result[byteIndex++] = ((decimalFromHexDigitAt(i++) shl 4) or decimalFromHexDigitAt(i++)).toByte()\n\n i = checkContainsAt(byteSuffix, i, endIndex, \"byte suffix\")\n }\n\n return if (byteIndex == result.size) result else result.copyOf(byteIndex)\n}\n\n// Declared internal for testing\ninternal fun parsedByteArrayMaxSize(\n stringLength: Int,\n bytesPerLine: Int,\n bytesPerGroup: Int,\n groupSeparatorLength: Int,\n byteSeparatorLength: Int,\n bytePrefixLength: Int,\n byteSuffixLength: Int\n): Int {\n require(stringLength > 0)\n // By contract bytesPerLine and bytesPerGroup are > 0\n\n // The max charsPerSet is achieved when\n // bytesPerLine/Group, bytePrefix/Suffix/SeparatorLength = Int.MAX_VALUE.\n // The result is 3 * Int.MAX_VALUE * Int.MAX_VALUE + Int.MAX_VALUE,\n // which is > Long.MAX_VALUE, but < ULong.MAX_VALUE.\n\n val charsPerByte = bytePrefixLength + 2L + byteSuffixLength\n\n val charsPerGroup = charsPerSet(charsPerByte, bytesPerGroup, byteSeparatorLength)\n\n val charsPerLine = if (bytesPerLine <= bytesPerGroup) {\n charsPerSet(charsPerByte, bytesPerLine, byteSeparatorLength)\n } else {\n val groupsPerLine = bytesPerLine / bytesPerGroup\n var result = charsPerSet(charsPerGroup, groupsPerLine, groupSeparatorLength)\n val bytesPerLastGroupInLine = bytesPerLine % bytesPerGroup\n if (bytesPerLastGroupInLine != 0) {\n result += groupSeparatorLength\n result += charsPerSet(charsPerByte, bytesPerLastGroupInLine, byteSeparatorLength)\n }\n result\n }\n\n var numberOfChars = stringLength.toLong()\n\n // assume one-character line separator to maximize size\n val wholeLines = wholeElementsPerSet(numberOfChars, charsPerLine, 1)\n numberOfChars -= wholeLines * (charsPerLine + 1)\n\n val wholeGroupsInLastLine = wholeElementsPerSet(numberOfChars, charsPerGroup, groupSeparatorLength)\n numberOfChars -= wholeGroupsInLastLine * (charsPerGroup + groupSeparatorLength)\n\n val wholeBytesInLastGroup = wholeElementsPerSet(numberOfChars, charsPerByte, byteSeparatorLength)\n numberOfChars -= wholeBytesInLastGroup * (charsPerByte + byteSeparatorLength)\n\n // If numberOfChars is bigger than zero here:\n // * CRLF might have been used as line separator\n // * or there are dangling characters at the end of string\n // Anyhow, have a spare capacity to let parsing continue.\n // In case of dangling characters it will throw later on with a correct message.\n val spare = if (numberOfChars > 0L) 1 else 0\n\n // The number of parsed bytes will always fit into Int, each parsed byte consumes at least 2 chars of the input string.\n return ((wholeLines * bytesPerLine) + (wholeGroupsInLastLine * bytesPerGroup) + wholeBytesInLastGroup + spare).toInt()\n}\n\nprivate fun charsPerSet(charsPerElement: Long, elementsPerSet: Int, elementSeparatorLength: Int): Long {\n require(elementsPerSet > 0)\n return (charsPerElement * elementsPerSet) + (elementSeparatorLength * (elementsPerSet - 1L))\n}\n\nprivate fun wholeElementsPerSet(charsPerSet: Long, charsPerElement: Long, elementSeparatorLength: Int): Long {\n return if (charsPerSet <= 0 || charsPerElement <= 0) 0\n else (charsPerSet + elementSeparatorLength) / (charsPerElement + elementSeparatorLength)\n}\n\nprivate fun String.checkNewLineAt(index: Int, endIndex: Int): Int {\n return if (this[index] == '\\r') {\n if (index + 1 < endIndex && this[index + 1] == '\\n') index + 2 else index + 1\n } else if (this[index] == '\\n') {\n index + 1\n } else {\n throw NumberFormatException(\"Expected a new line at index $index, but was ${this[index]}\")\n }\n}\n\n// -------------------------- format and parse Byte --------------------------\n\n/**\n * Formats this `Byte` value using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.NumberHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun Byte.toHexString(format: HexFormat = HexFormat.Default): String = toLong().toHexStringImpl(format, bits = 8)\n\n/**\n * Parses a `Byte` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun String.hexToByte(format: HexFormat = HexFormat.Default): Byte = hexToByte(0, length, format)\n\n/**\n * Parses a `Byte` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\nprivate fun String.hexToByte(startIndex: Int = 0, endIndex: Int = length, format: HexFormat = HexFormat.Default): Byte =\n hexToLongImpl(startIndex, endIndex, format, maxDigits = 2).toByte()\n\n// -------------------------- format and parse Short --------------------------\n\n/**\n * Formats this `Short` value using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.NumberHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun Short.toHexString(format: HexFormat = HexFormat.Default): String = toLong().toHexStringImpl(format, bits = 16)\n\n/**\n * Parses a `Short` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun String.hexToShort(format: HexFormat = HexFormat.Default): Short = hexToShort(0, length, format)\n\n/**\n * Parses a `Short` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\nprivate fun String.hexToShort(startIndex: Int = 0, endIndex: Int = length, format: HexFormat = HexFormat.Default): Short =\n hexToLongImpl(startIndex, endIndex, format, maxDigits = 4).toShort()\n\n// -------------------------- format and parse Int --------------------------\n\n/**\n * Formats this `Int` value using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.NumberHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun Int.toHexString(format: HexFormat = HexFormat.Default): String = toLong().toHexStringImpl(format, bits = 32)\n\n/**\n * Parses an `Int` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun String.hexToInt(format: HexFormat = HexFormat.Default): Int = hexToInt(0, length, format)\n\n/**\n * Parses an `Int` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\nprivate fun String.hexToInt(startIndex: Int = 0, endIndex: Int = length, format: HexFormat = HexFormat.Default): Int =\n hexToLongImpl(startIndex, endIndex, format, maxDigits = 8).toInt()\n\n// -------------------------- format and parse Long --------------------------\n\n/**\n * Formats this `Long` value using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.NumberHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun Long.toHexString(format: HexFormat = HexFormat.Default): String = toHexStringImpl(format, bits = 64)\n\n/**\n * Parses a `Long` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic fun String.hexToLong(format: HexFormat = HexFormat.Default): Long = hexToLong(0, length, format)\n\n/**\n * Parses a `Long` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\nprivate fun String.hexToLong(startIndex: Int = 0, endIndex: Int = length, format: HexFormat = HexFormat.Default): Long =\n hexToLongImpl(startIndex, endIndex, format, maxDigits = 16)\n\n// -------------------------- private format and parse functions --------------------------\n\n@ExperimentalStdlibApi\nprivate fun Long.toHexStringImpl(format: HexFormat, bits: Int): String {\n require(bits and 0x3 == 0)\n\n val digits = if (format.upperCase) UPPER_CASE_HEX_DIGITS else LOWER_CASE_HEX_DIGITS\n val value = this\n\n val prefix = format.number.prefix\n val suffix = format.number.suffix\n val formatLength = prefix.length + (bits shr 2) + suffix.length\n var removeZeros = format.number.removeLeadingZeros\n\n return buildString(formatLength) {\n append(prefix)\n\n var shift = bits\n while (shift > 0) {\n shift -= 4\n val decimal = ((value shr shift) and 0xF).toInt()\n removeZeros = removeZeros && decimal == 0 && shift > 0\n if (!removeZeros) {\n append(digits[decimal])\n }\n }\n\n append(suffix)\n }\n}\n\n@ExperimentalStdlibApi\nprivate fun String.hexToLongImpl(startIndex: Int = 0, endIndex: Int = length, format: HexFormat, maxDigits: Int): Long {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n\n val prefix = format.number.prefix\n val suffix = format.number.suffix\n\n if (prefix.length + suffix.length >= endIndex - startIndex) {\n throw NumberFormatException(\n \"Expected a hexadecimal number with prefix \\\"$prefix\\\" and suffix \\\"$suffix\\\", but was ${substring(startIndex, endIndex)}\"\n )\n }\n\n val digitsStartIndex = checkContainsAt(prefix, startIndex, endIndex, \"prefix\")\n val digitsEndIndex = endIndex - suffix.length\n checkContainsAt(suffix, digitsEndIndex, endIndex, \"suffix\")\n\n checkHexLength(digitsStartIndex, digitsEndIndex, maxDigits, requireMaxLength = false)\n\n var result = 0L\n for (i in digitsStartIndex until digitsEndIndex) {\n result = (result shl 4) or decimalFromHexDigitAt(i).toLong()\n }\n return result\n}\n\nprivate fun String.checkContainsAt(part: String, index: Int, endIndex: Int, partName: String): Int {\n val end = index + part.length\n if (end > endIndex || !regionMatches(index, part, 0, part.length, ignoreCase = true)) {\n throw NumberFormatException(\n \"Expected $partName \\\"$part\\\" at index $index, but was ${this.substring(index, end.coerceAtMost(endIndex))}\"\n )\n }\n return end\n}\n\nprivate fun String.checkHexLength(startIndex: Int, endIndex: Int, maxDigits: Int, requireMaxLength: Boolean) {\n val digitsLength = endIndex - startIndex\n val isCorrectLength = if (requireMaxLength) digitsLength == maxDigits else digitsLength <= maxDigits\n if (!isCorrectLength) {\n val specifier = if (requireMaxLength) \"exactly\" else \"at most\"\n val substring = substring(startIndex, endIndex)\n throw NumberFormatException(\n \"Expected $specifier $maxDigits hexadecimal digits at index $startIndex, but was $substring of length $digitsLength\"\n )\n }\n}\n\nprivate fun String.decimalFromHexDigitAt(index: Int): Int {\n val code = this[index].code\n if (code > 127 || HEX_DIGITS_TO_DECIMAL[code] < 0) {\n throw NumberFormatException(\"Expected a hexadecimal digit at index $index, but was ${this[index]}\")\n }\n return HEX_DIGITS_TO_DECIMAL[code]\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 limitForMaxRadix = (-Int.MAX_VALUE) / 36\n\n var limitBeforeMul = limitForMaxRadix\n var result = 0\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) {\n if (limitBeforeMul == limitForMaxRadix) {\n limitBeforeMul = limit / radix\n\n if (result < limitBeforeMul) {\n return null\n }\n } else {\n return null\n }\n }\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 limitForMaxRadix = (-Long.MAX_VALUE) / 36\n\n var limitBeforeMul = limitForMaxRadix\n var result = 0L\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) {\n if (limitBeforeMul == limitForMaxRadix) {\n limitBeforeMul = limit / radix\n\n if (result < limitBeforeMul) {\n return null\n }\n } else {\n return null\n }\n }\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-2021 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.time\n\nimport kotlin.contracts.*\nimport kotlin.jvm.JvmInline\nimport kotlin.math.*\n\n/**\n * Represents the amount of time one instant of time is away from another instant.\n *\n * A negative duration is possible in a situation when the second instant is earlier than the first one.\n *\n * The type can store duration values up to \u00b1146 years with nanosecond precision,\n * and up to \u00b1146 million years with millisecond precision.\n * If a duration-returning operation provided in `kotlin.time` produces a duration value that doesn't fit into the above range,\n * the returned `Duration` is infinite.\n *\n * An infinite duration value [Duration.INFINITE] can be used to represent infinite timeouts.\n *\n * To construct a duration use either the extension function [toDuration],\n * or the extension properties [hours], [minutes], [seconds], and so on,\n * available on [Int], [Long], and [Double] numeric types.\n *\n * To get the value of this duration expressed in a particular [duration units][DurationUnit]\n * use the functions [toInt], [toLong], and [toDouble]\n * or the properties [inWholeHours], [inWholeMinutes], [inWholeSeconds], [inWholeNanoseconds], and so on.\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalTime::class)\n@JvmInline\npublic value class Duration internal constructor(private val rawValue: Long) : Comparable {\n\n private val value: Long get() = rawValue shr 1\n private inline val unitDiscriminator: Int get() = rawValue.toInt() and 1\n private fun isInNanos() = unitDiscriminator == 0\n private fun isInMillis() = unitDiscriminator == 1\n private val storageUnit get() = if (isInNanos()) DurationUnit.NANOSECONDS else DurationUnit.MILLISECONDS\n\n init {\n if (durationAssertionsEnabled) {\n if (isInNanos()) {\n if (value !in -MAX_NANOS..MAX_NANOS) throw AssertionError(\"$value ns is out of nanoseconds range\")\n } else {\n if (value !in -MAX_MILLIS..MAX_MILLIS) throw AssertionError(\"$value ms is out of milliseconds range\")\n if (value in -MAX_NANOS_IN_MILLIS..MAX_NANOS_IN_MILLIS) throw AssertionError(\"$value ms is denormalized\")\n }\n }\n }\n\n companion object {\n /** The duration equal to exactly 0 seconds. */\n public val ZERO: Duration = Duration(0L)\n\n /** The duration whose value is positive infinity. It is useful for representing timeouts that should never expire. */\n public val INFINITE: Duration = durationOfMillis(MAX_MILLIS)\n internal val NEG_INFINITE: Duration = durationOfMillis(-MAX_MILLIS)\n\n /** Converts the given time duration [value] expressed in the specified [sourceUnit] into the specified [targetUnit]. */\n @ExperimentalTime\n public fun convert(value: Double, sourceUnit: DurationUnit, targetUnit: DurationUnit): Double =\n convertDurationUnit(value, sourceUnit, targetUnit)\n\n // Duration construction extension properties in Duration companion scope\n\n /** Returns a [Duration] equal to this [Int] number of nanoseconds. */\n @kotlin.internal.InlineOnly\n public inline val Int.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)\n\n /** Returns a [Duration] equal to this [Long] number of nanoseconds. */\n @kotlin.internal.InlineOnly\n public inline val Long.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)\n\n /**\n * Returns a [Duration] equal to this [Double] number of nanoseconds.\n *\n * Depending on its magnitude, the value is rounded to an integer number of nanoseconds or milliseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n @kotlin.internal.InlineOnly\n public inline val Double.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)\n\n\n /** Returns a [Duration] equal to this [Int] number of microseconds. */\n @kotlin.internal.InlineOnly\n public inline val Int.microseconds get() = toDuration(DurationUnit.MICROSECONDS)\n\n /** Returns a [Duration] equal to this [Long] number of microseconds. */\n @kotlin.internal.InlineOnly\n public inline val Long.microseconds get() = toDuration(DurationUnit.MICROSECONDS)\n\n /**\n * Returns a [Duration] equal to this [Double] number of microseconds.\n *\n * Depending on its magnitude, the value is rounded to an integer number of nanoseconds or milliseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n @kotlin.internal.InlineOnly\n public inline val Double.microseconds get() = toDuration(DurationUnit.MICROSECONDS)\n\n\n /** Returns a [Duration] equal to this [Int] number of milliseconds. */\n @kotlin.internal.InlineOnly\n public inline val Int.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)\n\n /** Returns a [Duration] equal to this [Long] number of milliseconds. */\n @kotlin.internal.InlineOnly\n public inline val Long.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)\n\n /**\n * Returns a [Duration] equal to this [Double] number of milliseconds.\n *\n * Depending on its magnitude, the value is rounded to an integer number of nanoseconds or milliseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n @kotlin.internal.InlineOnly\n public inline val Double.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)\n\n\n /** Returns a [Duration] equal to this [Int] number of seconds. */\n @kotlin.internal.InlineOnly\n public inline val Int.seconds get() = toDuration(DurationUnit.SECONDS)\n\n /** Returns a [Duration] equal to this [Long] number of seconds. */\n @kotlin.internal.InlineOnly\n public inline val Long.seconds get() = toDuration(DurationUnit.SECONDS)\n\n /**\n * Returns a [Duration] equal to this [Double] number of seconds.\n *\n * Depending on its magnitude, the value is rounded to an integer number of nanoseconds or milliseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n @kotlin.internal.InlineOnly\n public inline val Double.seconds get() = toDuration(DurationUnit.SECONDS)\n\n\n /** Returns a [Duration] equal to this [Int] number of minutes. */\n @kotlin.internal.InlineOnly\n public inline val Int.minutes get() = toDuration(DurationUnit.MINUTES)\n\n /** Returns a [Duration] equal to this [Long] number of minutes. */\n @kotlin.internal.InlineOnly\n public inline val Long.minutes get() = toDuration(DurationUnit.MINUTES)\n\n /**\n * Returns a [Duration] equal to this [Double] number of minutes.\n *\n * Depending on its magnitude, the value is rounded to an integer number of nanoseconds or milliseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n @kotlin.internal.InlineOnly\n public inline val Double.minutes get() = toDuration(DurationUnit.MINUTES)\n\n\n /** Returns a [Duration] equal to this [Int] number of hours. */\n @kotlin.internal.InlineOnly\n public inline val Int.hours get() = toDuration(DurationUnit.HOURS)\n\n /** Returns a [Duration] equal to this [Long] number of hours. */\n @kotlin.internal.InlineOnly\n public inline val Long.hours get() = toDuration(DurationUnit.HOURS)\n\n /**\n * Returns a [Duration] equal to this [Double] number of hours.\n *\n * Depending on its magnitude, the value is rounded to an integer number of nanoseconds or milliseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n @kotlin.internal.InlineOnly\n public inline val Double.hours get() = toDuration(DurationUnit.HOURS)\n\n\n /** Returns a [Duration] equal to this [Int] number of days. */\n @kotlin.internal.InlineOnly\n public inline val Int.days get() = toDuration(DurationUnit.DAYS)\n\n /** Returns a [Duration] equal to this [Long] number of days. */\n @kotlin.internal.InlineOnly\n public inline val Long.days get() = toDuration(DurationUnit.DAYS)\n\n /**\n * Returns a [Duration] equal to this [Double] number of days.\n *\n * Depending on its magnitude, the value is rounded to an integer number of nanoseconds or milliseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n @kotlin.internal.InlineOnly\n public inline val Double.days get() = toDuration(DurationUnit.DAYS)\n\n\n // deprecated static factory functions\n\n /** Returns a [Duration] representing the specified [value] number of nanoseconds. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Int.nanoseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.nanoseconds\", \"kotlin.time.Duration.Companion.nanoseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun nanoseconds(value: Int): Duration = value.toDuration(DurationUnit.NANOSECONDS)\n\n /** Returns a [Duration] representing the specified [value] number of nanoseconds. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Long.nanoseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.nanoseconds\", \"kotlin.time.Duration.Companion.nanoseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun nanoseconds(value: Long): Duration = value.toDuration(DurationUnit.NANOSECONDS)\n\n /**\n * Returns a [Duration] representing the specified [value] number of nanoseconds.\n *\n * @throws IllegalArgumentException if the provided `Double` [value] is `NaN`.\n */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Double.nanoseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.nanoseconds\", \"kotlin.time.Duration.Companion.nanoseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun nanoseconds(value: Double): Duration = value.toDuration(DurationUnit.NANOSECONDS)\n\n\n /** Returns a [Duration] representing the specified [value] number of microseconds. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Int.microseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.microseconds\", \"kotlin.time.Duration.Companion.microseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun microseconds(value: Int): Duration = value.toDuration(DurationUnit.MICROSECONDS)\n\n /** Returns a [Duration] representing the specified [value] number of microseconds. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Long.microseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.microseconds\", \"kotlin.time.Duration.Companion.microseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun microseconds(value: Long): Duration = value.toDuration(DurationUnit.MICROSECONDS)\n\n /**\n * Returns a [Duration] representing the specified [value] number of microseconds.\n *\n * @throws IllegalArgumentException if the provided `Double` [value] is `NaN`.\n */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Double.microseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.microseconds\", \"kotlin.time.Duration.Companion.microseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun microseconds(value: Double): Duration = value.toDuration(DurationUnit.MICROSECONDS)\n\n\n /** Returns a [Duration] representing the specified [value] number of milliseconds. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Int.milliseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.milliseconds\", \"kotlin.time.Duration.Companion.milliseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun milliseconds(value: Int): Duration = value.toDuration(DurationUnit.MILLISECONDS)\n\n /** Returns a [Duration] representing the specified [value] number of milliseconds. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Long.milliseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.milliseconds\", \"kotlin.time.Duration.Companion.milliseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun milliseconds(value: Long): Duration = value.toDuration(DurationUnit.MILLISECONDS)\n\n /**\n * Returns a [Duration] representing the specified [value] number of milliseconds.\n *\n * @throws IllegalArgumentException if the provided `Double` [value] is `NaN`.\n */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Double.milliseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.milliseconds\", \"kotlin.time.Duration.Companion.milliseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun milliseconds(value: Double): Duration = value.toDuration(DurationUnit.MILLISECONDS)\n\n\n /** Returns a [Duration] representing the specified [value] number of seconds. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Int.seconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.seconds\", \"kotlin.time.Duration.Companion.seconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun seconds(value: Int): Duration = value.toDuration(DurationUnit.SECONDS)\n\n /** Returns a [Duration] representing the specified [value] number of seconds. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Long.seconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.seconds\", \"kotlin.time.Duration.Companion.seconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun seconds(value: Long): Duration = value.toDuration(DurationUnit.SECONDS)\n\n /**\n * Returns a [Duration] representing the specified [value] number of seconds.\n *\n * @throws IllegalArgumentException if the provided `Double` [value] is `NaN`.\n */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Double.seconds' extension property from Duration.Companion instead.\", ReplaceWith(\"value.seconds\", \"kotlin.time.Duration.Companion.seconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun seconds(value: Double): Duration = value.toDuration(DurationUnit.SECONDS)\n\n\n /** Returns a [Duration] representing the specified [value] number of minutes. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Int.minutes' extension property from Duration.Companion instead.\", ReplaceWith(\"value.minutes\", \"kotlin.time.Duration.Companion.minutes\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun minutes(value: Int): Duration = value.toDuration(DurationUnit.MINUTES)\n\n /** Returns a [Duration] representing the specified [value] number of minutes. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Long.minutes' extension property from Duration.Companion instead.\", ReplaceWith(\"value.minutes\", \"kotlin.time.Duration.Companion.minutes\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun minutes(value: Long): Duration = value.toDuration(DurationUnit.MINUTES)\n\n /**\n * Returns a [Duration] representing the specified [value] number of minutes.\n *\n * @throws IllegalArgumentException if the provided `Double` [value] is `NaN`.\n */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Double.minutes' extension property from Duration.Companion instead.\", ReplaceWith(\"value.minutes\", \"kotlin.time.Duration.Companion.minutes\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun minutes(value: Double): Duration = value.toDuration(DurationUnit.MINUTES)\n\n\n /** Returns a [Duration] representing the specified [value] number of hours. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Int.hours' extension property from Duration.Companion instead.\", ReplaceWith(\"value.hours\", \"kotlin.time.Duration.Companion.hours\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun hours(value: Int): Duration = value.toDuration(DurationUnit.HOURS)\n\n /** Returns a [Duration] representing the specified [value] number of hours. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Long.hours' extension property from Duration.Companion instead.\", ReplaceWith(\"value.hours\", \"kotlin.time.Duration.Companion.hours\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun hours(value: Long): Duration = value.toDuration(DurationUnit.HOURS)\n\n /**\n * Returns a [Duration] representing the specified [value] number of hours.\n *\n * @throws IllegalArgumentException if the provided `Double` [value] is `NaN`.\n */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Double.hours' extension property from Duration.Companion instead.\", ReplaceWith(\"value.hours\", \"kotlin.time.Duration.Companion.hours\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun hours(value: Double): Duration = value.toDuration(DurationUnit.HOURS)\n\n\n /** Returns a [Duration] representing the specified [value] number of days. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Int.days' extension property from Duration.Companion instead.\", ReplaceWith(\"value.days\", \"kotlin.time.Duration.Companion.days\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun days(value: Int): Duration = value.toDuration(DurationUnit.DAYS)\n\n /** Returns a [Duration] representing the specified [value] number of days. */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Long.days' extension property from Duration.Companion instead.\", ReplaceWith(\"value.days\", \"kotlin.time.Duration.Companion.days\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun days(value: Long): Duration = value.toDuration(DurationUnit.DAYS)\n\n /**\n * Returns a [Duration] representing the specified [value] number of days.\n *\n * @throws IllegalArgumentException if the provided `Double` [value] is `NaN`.\n */\n @SinceKotlin(\"1.5\")\n @ExperimentalTime\n @Deprecated(\"Use 'Double.days' extension property from Duration.Companion instead.\", ReplaceWith(\"value.days\", \"kotlin.time.Duration.Companion.days\"))\n @DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun days(value: Double): Duration = value.toDuration(DurationUnit.DAYS)\n\n /**\n * Parses a string that represents a duration and returns the parsed [Duration] value.\n *\n * The following formats are accepted:\n *\n * - ISO-8601 Duration format, e.g. `P1DT2H3M4.058S`, see [toIsoString] and [parseIsoString].\n * - The format of string returned by the default [Duration.toString] and `toString` in a specific unit,\n * e.g. `10s`, `1h 30m` or `-(1h 30m)`.\n *\n * @throws IllegalArgumentException if the string doesn't represent a duration in any of the supported formats.\n * @sample samples.time.Durations.parse\n */\n public fun parse(value: String): Duration = try {\n parseDuration(value, strictIso = false)\n } catch (e: IllegalArgumentException) {\n throw IllegalArgumentException(\"Invalid duration string format: '$value'.\", e)\n }\n\n /**\n * Parses a string that represents a duration in a restricted ISO-8601 composite representation\n * and returns the parsed [Duration] value.\n * Composite representation is a relaxed version of ISO-8601 duration format that supports\n * negative durations and negative values of individual components.\n *\n * The following restrictions are imposed:\n *\n * - The only allowed non-time designator is days (`D`). `Y` (years), `W` (weeks), and `M` (months) are not supported.\n * - Day is considered to be exactly 24 hours (24-hour clock time scale).\n * - Alternative week-based representation `[\"P\"][number][\"W\"]` is not supported.\n *\n * @throws IllegalArgumentException if the string doesn't represent a duration in ISO-8601 format.\n * @sample samples.time.Durations.parseIsoString\n */\n public fun parseIsoString(value: String): Duration = try {\n parseDuration(value, strictIso = true)\n } catch (e: IllegalArgumentException) {\n throw IllegalArgumentException(\"Invalid ISO duration string format: '$value'.\", e)\n }\n\n /**\n * Parses a string that represents a duration and returns the parsed [Duration] value,\n * or `null` if the string doesn't represent a duration in any of the supported formats.\n *\n * The following formats are accepted:\n *\n * - Restricted ISO-8601 duration composite representation, e.g. `P1DT2H3M4.058S`, see [toIsoString] and [parseIsoString].\n * - The format of string returned by the default [Duration.toString] and `toString` in a specific unit,\n * e.g. `10s`, `1h 30m` or `-(1h 30m)`.\n * @sample samples.time.Durations.parse\n */\n public fun parseOrNull(value: String): Duration? = try {\n parseDuration(value, strictIso = false)\n } catch (e: IllegalArgumentException) {\n null\n }\n\n /**\n * Parses a string that represents a duration in restricted ISO-8601 composite representation\n * and returns the parsed [Duration] value or `null` if the string doesn't represent a duration in the format\n * acceptable by [parseIsoString].\n *\n * @sample samples.time.Durations.parseIsoString\n */\n public fun parseIsoStringOrNull(value: String): Duration? = try {\n parseDuration(value, strictIso = true)\n } catch (e: IllegalArgumentException) {\n null\n }\n }\n\n // arithmetic operators\n\n /** Returns the negative of this value. */\n public operator fun unaryMinus(): Duration = durationOf(-value, unitDiscriminator)\n\n /**\n * Returns a duration whose value is the sum of this and [other] duration values.\n *\n * @throws IllegalArgumentException if the operation results in an undefined value for the given arguments,\n * e.g. when adding infinite durations of different sign.\n */\n public operator fun plus(other: Duration): Duration {\n when {\n this.isInfinite() -> {\n if (other.isFinite() || (this.rawValue xor other.rawValue >= 0))\n return this\n else\n throw IllegalArgumentException(\"Summing infinite durations of different signs yields an undefined result.\")\n }\n other.isInfinite() -> return other\n }\n\n return when {\n this.unitDiscriminator == other.unitDiscriminator -> {\n val result = this.value + other.value // never overflows long, but can overflow long63\n when {\n isInNanos() ->\n durationOfNanosNormalized(result)\n else ->\n durationOfMillisNormalized(result)\n }\n }\n this.isInMillis() ->\n addValuesMixedRanges(this.value, other.value)\n else ->\n addValuesMixedRanges(other.value, this.value)\n }\n }\n\n private fun addValuesMixedRanges(thisMillis: Long, otherNanos: Long): Duration {\n val otherMillis = nanosToMillis(otherNanos)\n val resultMillis = thisMillis + otherMillis\n return if (resultMillis in -MAX_NANOS_IN_MILLIS..MAX_NANOS_IN_MILLIS) {\n val otherNanoRemainder = otherNanos - millisToNanos(otherMillis)\n durationOfNanos(millisToNanos(resultMillis) + otherNanoRemainder)\n } else {\n durationOfMillis(resultMillis.coerceIn(-MAX_MILLIS, MAX_MILLIS))\n }\n }\n\n /**\n * Returns a duration whose value is the difference between this and [other] duration values.\n *\n * @throws IllegalArgumentException if the operation results in an undefined value for the given arguments,\n * e.g. when subtracting infinite durations of the same sign.\n */\n public operator fun minus(other: Duration): Duration = this + (-other)\n\n /**\n * Returns a duration whose value is this duration value multiplied by the given [scale] number.\n *\n * @throws IllegalArgumentException if the operation results in an undefined value for the given arguments,\n * e.g. when multiplying an infinite duration by zero.\n */\n public operator fun times(scale: Int): Duration {\n if (isInfinite()) {\n return when {\n scale == 0 -> throw IllegalArgumentException(\"Multiplying infinite duration by zero yields an undefined result.\")\n scale > 0 -> this\n else -> -this\n }\n }\n if (scale == 0) return ZERO\n\n val value = value\n val result = value * scale\n return if (isInNanos()) {\n if (value in (MAX_NANOS / Int.MIN_VALUE)..(-MAX_NANOS / Int.MIN_VALUE)) {\n // can't overflow nanos range for any scale\n durationOfNanos(result)\n } else {\n if (result / scale == value) {\n durationOfNanosNormalized(result)\n } else {\n val millis = nanosToMillis(value)\n val remNanos = value - millisToNanos(millis)\n val resultMillis = millis * scale\n val totalMillis = resultMillis + nanosToMillis(remNanos * scale)\n if (resultMillis / scale == millis && totalMillis xor resultMillis >= 0) {\n durationOfMillis(totalMillis.coerceIn(-MAX_MILLIS..MAX_MILLIS))\n } else {\n if (value.sign * scale.sign > 0) INFINITE else NEG_INFINITE\n }\n }\n }\n } else {\n if (result / scale == value) {\n durationOfMillis(result.coerceIn(-MAX_MILLIS..MAX_MILLIS))\n } else {\n if (value.sign * scale.sign > 0) INFINITE else NEG_INFINITE\n }\n }\n }\n\n /**\n * Returns a duration whose value is this duration value multiplied by the given [scale] number.\n *\n * The operation may involve rounding when the result cannot be represented exactly with a [Double] number.\n *\n * @throws IllegalArgumentException if the operation results in an undefined value for the given arguments,\n * e.g. when multiplying an infinite duration by zero.\n */\n public operator fun times(scale: Double): Duration {\n val intScale = scale.roundToInt()\n if (intScale.toDouble() == scale) {\n return times(intScale)\n }\n\n val unit = storageUnit\n val result = toDouble(unit) * scale\n return result.toDuration(unit)\n }\n\n /**\n * Returns a duration whose value is this duration value divided by the given [scale] number.\n *\n * @throws IllegalArgumentException if the operation results in an undefined value for the given arguments,\n * e.g. when dividing zero duration by zero.\n */\n public operator fun div(scale: Int): Duration {\n if (scale == 0) {\n return when {\n isPositive() -> INFINITE\n isNegative() -> NEG_INFINITE\n else -> throw IllegalArgumentException(\"Dividing zero duration by zero yields an undefined result.\")\n }\n }\n if (isInNanos()) {\n return durationOfNanos(value / scale)\n } else {\n if (isInfinite())\n return this * scale.sign\n\n val result = value / scale\n\n if (result in -MAX_NANOS_IN_MILLIS..MAX_NANOS_IN_MILLIS) {\n val rem = millisToNanos(value - (result * scale)) / scale\n return durationOfNanos(millisToNanos(result) + rem)\n }\n return durationOfMillis(result)\n }\n }\n\n /**\n * Returns a duration whose value is this duration value divided by the given [scale] number.\n *\n * @throws IllegalArgumentException if the operation results in an undefined value for the given arguments,\n * e.g. when dividing an infinite duration by infinity or zero duration by zero.\n */\n public operator fun div(scale: Double): Duration {\n val intScale = scale.roundToInt()\n if (intScale.toDouble() == scale && intScale != 0) {\n return div(intScale)\n }\n\n val unit = storageUnit\n val result = toDouble(unit) / scale\n return result.toDuration(unit)\n }\n\n /** Returns a number that is the ratio of this and [other] duration values. */\n public operator fun div(other: Duration): Double {\n val coarserUnit = maxOf(this.storageUnit, other.storageUnit)\n return this.toDouble(coarserUnit) / other.toDouble(coarserUnit)\n }\n\n /**\n * Returns a duration whose value is this duration value truncated to the specified duration [unit].\n */\n internal fun truncateTo(unit: DurationUnit): Duration {\n val storageUnit = storageUnit\n if (unit <= storageUnit || this.isInfinite()) return this\n val scale = convertDurationUnit(1, unit, storageUnit)\n val result = value - value % scale\n return result.toDuration(storageUnit)\n }\n\n /** Returns true, if the duration value is less than zero. */\n public fun isNegative(): Boolean = rawValue < 0\n\n /** Returns true, if the duration value is greater than zero. */\n public fun isPositive(): Boolean = rawValue > 0\n\n /** Returns true, if the duration value is infinite. */\n public fun isInfinite(): Boolean = rawValue == INFINITE.rawValue || rawValue == NEG_INFINITE.rawValue\n\n /** Returns true, if the duration value is finite. */\n public fun isFinite(): Boolean = !isInfinite()\n\n /** Returns the absolute value of this value. The returned value is always non-negative. */\n public val absoluteValue: Duration get() = if (isNegative()) -this else this\n\n override fun compareTo(other: Duration): Int {\n val compareBits = this.rawValue xor other.rawValue\n if (compareBits < 0 || compareBits.toInt() and 1 == 0) // different signs or same sign/same range\n return this.rawValue.compareTo(other.rawValue)\n // same sign/different ranges\n val r = this.unitDiscriminator - other.unitDiscriminator // compare ranges\n return if (isNegative()) -r else r\n }\n\n\n // splitting to components\n\n /**\n * Splits this duration into days, hours, minutes, seconds, and nanoseconds and executes the given [action] with these components.\n * The result of [action] is returned as the result of this function.\n *\n * - `nanoseconds` represents the whole number of nanoseconds in this duration, and its absolute value is less than 1_000_000_000;\n * - `seconds` represents the whole number of seconds in this duration, and its absolute value is less than 60;\n * - `minutes` represents the whole number of minutes in this duration, and its absolute value is less than 60;\n * - `hours` represents the whole number of hours in this duration, and its absolute value is less than 24;\n * - `days` represents the whole number of days in this duration.\n *\n * Infinite durations are represented as either [Long.MAX_VALUE] days, or [Long.MIN_VALUE] days (depending on the sign of infinity),\n * and zeroes in the lower components.\n */\n public inline fun toComponents(action: (days: Long, hours: Int, minutes: Int, seconds: Int, nanoseconds: Int) -> T): T {\n contract { callsInPlace(action, InvocationKind.EXACTLY_ONCE) }\n return action(inWholeDays, hoursComponent, minutesComponent, secondsComponent, nanosecondsComponent)\n }\n\n /**\n * Splits this duration into hours, minutes, seconds, and nanoseconds and executes the given [action] with these components.\n * The result of [action] is returned as the result of this function.\n *\n * - `nanoseconds` represents the whole number of nanoseconds in this duration, and its absolute value is less than 1_000_000_000;\n * - `seconds` represents the whole number of seconds in this duration, and its absolute value is less than 60;\n * - `minutes` represents the whole number of minutes in this duration, and its absolute value is less than 60;\n * - `hours` represents the whole number of hours in this duration.\n *\n * Infinite durations are represented as either [Long.MAX_VALUE] hours, or [Long.MIN_VALUE] hours (depending on the sign of infinity),\n * and zeroes in the lower components.\n */\n public inline fun toComponents(action: (hours: Long, minutes: Int, seconds: Int, nanoseconds: Int) -> T): T {\n contract { callsInPlace(action, InvocationKind.EXACTLY_ONCE) }\n return action(inWholeHours, minutesComponent, secondsComponent, nanosecondsComponent)\n }\n\n /**\n * Splits this duration into minutes, seconds, and nanoseconds and executes the given [action] with these components.\n * The result of [action] is returned as the result of this function.\n *\n * - `nanoseconds` represents the whole number of nanoseconds in this duration, and its absolute value is less than 1_000_000_000;\n * - `seconds` represents the whole number of seconds in this duration, and its absolute value is less than 60;\n * - `minutes` represents the whole number of minutes in this duration.\n *\n * Infinite durations are represented as either [Long.MAX_VALUE] minutes, or [Long.MIN_VALUE] minutes (depending on the sign of infinity),\n * and zeroes in the lower components.\n */\n public inline fun toComponents(action: (minutes: Long, seconds: Int, nanoseconds: Int) -> T): T {\n contract { callsInPlace(action, InvocationKind.EXACTLY_ONCE) }\n return action(inWholeMinutes, secondsComponent, nanosecondsComponent)\n }\n\n /**\n * Splits this duration into seconds, and nanoseconds and executes the given [action] with these components.\n * The result of [action] is returned as the result of this function.\n *\n * - `nanoseconds` represents the whole number of nanoseconds in this duration, and its absolute value is less than 1_000_000_000;\n * - `seconds` represents the whole number of seconds in this duration.\n *\n * Infinite durations are represented as either [Long.MAX_VALUE] seconds, or [Long.MIN_VALUE] seconds (depending on the sign of infinity),\n * and zero nanoseconds.\n */\n public inline fun toComponents(action: (seconds: Long, nanoseconds: Int) -> T): T {\n contract { callsInPlace(action, InvocationKind.EXACTLY_ONCE) }\n return action(inWholeSeconds, nanosecondsComponent)\n }\n\n @PublishedApi\n internal val hoursComponent: Int\n get() = if (isInfinite()) 0 else (inWholeHours % 24).toInt()\n\n @PublishedApi\n internal val minutesComponent: Int\n get() = if (isInfinite()) 0 else (inWholeMinutes % 60).toInt()\n\n @PublishedApi\n internal val secondsComponent: Int\n get() = if (isInfinite()) 0 else (inWholeSeconds % 60).toInt()\n\n @PublishedApi\n internal val nanosecondsComponent: Int\n get() = when {\n isInfinite() -> 0\n isInMillis() -> millisToNanos(value % 1_000).toInt()\n else -> (value % 1_000_000_000).toInt()\n }\n\n\n // conversion to units\n\n /**\n * Returns the value of this duration expressed as a [Double] number of the specified [unit].\n *\n * The operation may involve rounding when the result cannot be represented exactly with a [Double] number.\n *\n * An infinite duration value is converted either to [Double.POSITIVE_INFINITY] or [Double.NEGATIVE_INFINITY] depending on its sign.\n */\n public fun toDouble(unit: DurationUnit): Double {\n return when (rawValue) {\n INFINITE.rawValue -> Double.POSITIVE_INFINITY\n NEG_INFINITE.rawValue -> Double.NEGATIVE_INFINITY\n else -> {\n // TODO: whether it's ok to convert to Double before scaling\n convertDurationUnit(value.toDouble(), storageUnit, unit)\n }\n }\n }\n\n /**\n * Returns the value of this duration expressed as a [Long] number of the specified [unit].\n *\n * If the result doesn't fit in the range of [Long] type, it is coerced into that range:\n * - [Long.MIN_VALUE] is returned if it's less than `Long.MIN_VALUE`,\n * - [Long.MAX_VALUE] is returned if it's greater than `Long.MAX_VALUE`.\n *\n * An infinite duration value is converted either to [Long.MAX_VALUE] or [Long.MIN_VALUE] depending on its sign.\n */\n public fun toLong(unit: DurationUnit): Long {\n return when (rawValue) {\n INFINITE.rawValue -> Long.MAX_VALUE\n NEG_INFINITE.rawValue -> Long.MIN_VALUE\n else -> convertDurationUnit(value, storageUnit, unit)\n }\n }\n\n /**\n * Returns the value of this duration expressed as an [Int] number of the specified [unit].\n *\n * If the result doesn't fit in the range of [Int] type, it is coerced into that range:\n * - [Int.MIN_VALUE] is returned if it's less than `Int.MIN_VALUE`,\n * - [Int.MAX_VALUE] is returned if it's greater than `Int.MAX_VALUE`.\n *\n * An infinite duration value is converted either to [Int.MAX_VALUE] or [Int.MIN_VALUE] depending on its sign.\n */\n public fun toInt(unit: DurationUnit): Int =\n toLong(unit).coerceIn(Int.MIN_VALUE.toLong(), Int.MAX_VALUE.toLong()).toInt()\n\n /** The value of this duration expressed as a [Double] number of days. */\n @ExperimentalTime\n @Deprecated(\"Use inWholeDays property instead or convert toDouble(DAYS) if a double value is required.\", ReplaceWith(\"toDouble(DurationUnit.DAYS)\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public val inDays: Double get() = toDouble(DurationUnit.DAYS)\n\n /** The value of this duration expressed as a [Double] number of hours. */\n @ExperimentalTime\n @Deprecated(\"Use inWholeHours property instead or convert toDouble(HOURS) if a double value is required.\", ReplaceWith(\"toDouble(DurationUnit.HOURS)\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public val inHours: Double get() = toDouble(DurationUnit.HOURS)\n\n /** The value of this duration expressed as a [Double] number of minutes. */\n @ExperimentalTime\n @Deprecated(\"Use inWholeMinutes property instead or convert toDouble(MINUTES) if a double value is required.\", ReplaceWith(\"toDouble(DurationUnit.MINUTES)\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public val inMinutes: Double get() = toDouble(DurationUnit.MINUTES)\n\n /** The value of this duration expressed as a [Double] number of seconds. */\n @ExperimentalTime\n @Deprecated(\"Use inWholeSeconds property instead or convert toDouble(SECONDS) if a double value is required.\", ReplaceWith(\"toDouble(DurationUnit.SECONDS)\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public val inSeconds: Double get() = toDouble(DurationUnit.SECONDS)\n\n /** The value of this duration expressed as a [Double] number of milliseconds. */\n @ExperimentalTime\n @Deprecated(\"Use inWholeMilliseconds property instead or convert toDouble(MILLISECONDS) if a double value is required.\", ReplaceWith(\"toDouble(DurationUnit.MILLISECONDS)\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public val inMilliseconds: Double get() = toDouble(DurationUnit.MILLISECONDS)\n\n /** The value of this duration expressed as a [Double] number of microseconds. */\n @ExperimentalTime\n @Deprecated(\"Use inWholeMicroseconds property instead or convert toDouble(MICROSECONDS) if a double value is required.\", ReplaceWith(\"toDouble(DurationUnit.MICROSECONDS)\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public val inMicroseconds: Double get() = toDouble(DurationUnit.MICROSECONDS)\n\n /** The value of this duration expressed as a [Double] number of nanoseconds. */\n @ExperimentalTime\n @Deprecated(\"Use inWholeNanoseconds property instead or convert toDouble(NANOSECONDS) if a double value is required.\", ReplaceWith(\"toDouble(DurationUnit.NANOSECONDS)\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public val inNanoseconds: Double get() = toDouble(DurationUnit.NANOSECONDS)\n\n\n /**\n * The value of this duration expressed as a [Long] number of days.\n *\n * An infinite duration value is converted either to [Long.MAX_VALUE] or [Long.MIN_VALUE] depending on its sign.\n */\n public val inWholeDays: Long\n get() = toLong(DurationUnit.DAYS)\n\n /**\n * The value of this duration expressed as a [Long] number of hours.\n *\n * An infinite duration value is converted either to [Long.MAX_VALUE] or [Long.MIN_VALUE] depending on its sign.\n */\n public val inWholeHours: Long\n get() = toLong(DurationUnit.HOURS)\n\n /**\n * The value of this duration expressed as a [Long] number of minutes.\n *\n * An infinite duration value is converted either to [Long.MAX_VALUE] or [Long.MIN_VALUE] depending on its sign.\n */\n public val inWholeMinutes: Long\n get() = toLong(DurationUnit.MINUTES)\n\n /**\n * The value of this duration expressed as a [Long] number of seconds.\n *\n * An infinite duration value is converted either to [Long.MAX_VALUE] or [Long.MIN_VALUE] depending on its sign.\n */\n public val inWholeSeconds: Long\n get() = toLong(DurationUnit.SECONDS)\n\n /**\n * The value of this duration expressed as a [Long] number of milliseconds.\n *\n * An infinite duration value is converted either to [Long.MAX_VALUE] or [Long.MIN_VALUE] depending on its sign.\n */\n public val inWholeMilliseconds: Long\n get() {\n return if (isInMillis() && isFinite()) value else toLong(DurationUnit.MILLISECONDS)\n }\n\n /**\n * The value of this duration expressed as a [Long] number of microseconds.\n *\n * If the result doesn't fit in the range of [Long] type, it is coerced into that range:\n * - [Long.MIN_VALUE] is returned if it's less than `Long.MIN_VALUE`,\n * - [Long.MAX_VALUE] is returned if it's greater than `Long.MAX_VALUE`.\n *\n * An infinite duration value is converted either to [Long.MAX_VALUE] or [Long.MIN_VALUE] depending on its sign.\n */\n public val inWholeMicroseconds: Long\n get() = toLong(DurationUnit.MICROSECONDS)\n\n /**\n * The value of this duration expressed as a [Long] number of nanoseconds.\n *\n * If the result doesn't fit in the range of [Long] type, it is coerced into that range:\n * - [Long.MIN_VALUE] is returned if it's less than `Long.MIN_VALUE`,\n * - [Long.MAX_VALUE] is returned if it's greater than `Long.MAX_VALUE`.\n *\n * An infinite duration value is converted either to [Long.MAX_VALUE] or [Long.MIN_VALUE] depending on its sign.\n */\n public val inWholeNanoseconds: Long\n get() {\n val value = value\n return when {\n isInNanos() -> value\n value > Long.MAX_VALUE / NANOS_IN_MILLIS -> Long.MAX_VALUE\n value < Long.MIN_VALUE / NANOS_IN_MILLIS -> Long.MIN_VALUE\n else -> millisToNanos(value)\n }\n }\n\n // shortcuts\n\n /**\n * Returns the value of this duration expressed as a [Long] number of nanoseconds.\n *\n * If the value doesn't fit in the range of [Long] type, it is coerced into that range, see the conversion [Double.toLong] for details.\n *\n * The range of durations that can be expressed as a `Long` number of nanoseconds is approximately \u00b1292 years.\n */\n @ExperimentalTime\n @Deprecated(\"Use inWholeNanoseconds property instead.\", ReplaceWith(\"this.inWholeNanoseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun toLongNanoseconds(): Long = inWholeNanoseconds\n\n /**\n * Returns the value of this duration expressed as a [Long] number of milliseconds.\n *\n * The value is coerced to the range of [Long] type, if it doesn't fit in that range, see the conversion [Double.toLong] for details.\n *\n * The range of durations that can be expressed as a `Long` number of milliseconds is approximately \u00b1292 million years.\n */\n @ExperimentalTime\n @Deprecated(\"Use inWholeMilliseconds property instead.\", ReplaceWith(\"this.inWholeMilliseconds\"))\n @DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\n public fun toLongMilliseconds(): Long = inWholeMilliseconds\n\n /**\n * Returns a string representation of this duration value\n * expressed as a combination of numeric components, each in its own unit.\n *\n * Each component is a number followed by the unit abbreviated name: `d`, `h`, `m`, `s`:\n * `5h`, `1d 12h`, `1h 0m 30.340s`.\n * The last component, usually seconds, can be a number with a fractional part.\n *\n * If the duration is less than a second, it is represented as a single number\n * with one of sub-second units: `ms` (milliseconds), `us` (microseconds), or `ns` (nanoseconds):\n * `140.884ms`, `500us`, `24ns`.\n *\n * A negative duration is prefixed with `-` sign and, if it consists of multiple components, surrounded with parentheses:\n * `-12m` and `-(1h 30m)`.\n *\n * Special cases:\n * - an infinite duration is formatted as `\"Infinity\"` or `\"-Infinity\"` without a unit.\n *\n * It's recommended to use [toIsoString] that uses more strict ISO-8601 format instead of this `toString`\n * when you want to convert a duration to a string in cases of serialization, interchange, etc.\n *\n * @sample samples.time.Durations.toStringDefault\n */\n override fun toString(): String = when (rawValue) {\n 0L -> \"0s\"\n INFINITE.rawValue -> \"Infinity\"\n NEG_INFINITE.rawValue -> \"-Infinity\"\n else -> {\n val isNegative = isNegative()\n buildString {\n if (isNegative) append('-')\n absoluteValue.toComponents { days, hours, minutes, seconds, nanoseconds ->\n val hasDays = days != 0L\n val hasHours = hours != 0\n val hasMinutes = minutes != 0\n val hasSeconds = seconds != 0 || nanoseconds != 0\n var components = 0\n if (hasDays) {\n append(days).append('d')\n components++\n }\n if (hasHours || (hasDays && (hasMinutes || hasSeconds))) {\n if (components++ > 0) append(' ')\n append(hours).append('h')\n }\n if (hasMinutes || (hasSeconds && (hasHours || hasDays))) {\n if (components++ > 0) append(' ')\n append(minutes).append('m')\n }\n if (hasSeconds) {\n if (components++ > 0) append(' ')\n when {\n seconds != 0 || hasDays || hasHours || hasMinutes ->\n appendFractional(seconds, nanoseconds, 9, \"s\", isoZeroes = false)\n nanoseconds >= 1_000_000 ->\n appendFractional(nanoseconds / 1_000_000, nanoseconds % 1_000_000, 6, \"ms\", isoZeroes = false)\n nanoseconds >= 1_000 ->\n appendFractional(nanoseconds / 1_000, nanoseconds % 1_000, 3, \"us\", isoZeroes = false)\n else ->\n append(nanoseconds).append(\"ns\")\n }\n }\n if (isNegative && components > 1) insert(1, '(').append(')')\n }\n }\n }\n }\n\n private fun StringBuilder.appendFractional(whole: Int, fractional: Int, fractionalSize: Int, unit: String, isoZeroes: Boolean) {\n append(whole)\n if (fractional != 0) {\n append('.')\n val fracString = fractional.toString().padStart(fractionalSize, '0')\n val nonZeroDigits = fracString.indexOfLast { it != '0' } + 1\n when {\n !isoZeroes && nonZeroDigits < 3 -> appendRange(fracString, 0, nonZeroDigits)\n else -> appendRange(fracString, 0, ((nonZeroDigits + 2) / 3) * 3)\n }\n }\n append(unit)\n }\n\n /**\n * Returns a string representation of this duration value expressed in the given [unit]\n * and formatted with the specified [decimals] number of digits after decimal point.\n *\n * Special cases:\n * - an infinite duration is formatted as `\"Infinity\"` or `\"-Infinity\"` without a unit.\n *\n * @param decimals the number of digits after decimal point to show. The value must be non-negative.\n * No more than 12 decimals will be shown, even if a larger number is requested.\n *\n * @return the value of duration in the specified [unit] followed by that unit abbreviated name: `d`, `h`, `m`, `s`, `ms`, `us`, or `ns`.\n *\n * @throws IllegalArgumentException if [decimals] is less than zero.\n *\n * @sample samples.time.Durations.toStringDecimals\n */\n public fun toString(unit: DurationUnit, decimals: Int = 0): String {\n require(decimals >= 0) { \"decimals must be not negative, but was $decimals\" }\n val number = toDouble(unit)\n if (number.isInfinite()) return number.toString()\n return formatToExactDecimals(number, decimals.coerceAtMost(12)) + unit.shortName()\n }\n\n\n /**\n * Returns an ISO-8601 based string representation of this duration.\n *\n * The returned value is presented in the format `PThHmMs.fS`, where `h`, `m`, `s` are the integer components of this duration (see [toComponents])\n * and `f` is a fractional part of second. Depending on the roundness of the value the fractional part can be formatted with either\n * 0, 3, 6, or 9 decimal digits.\n *\n * The infinite duration is represented as `\"PT9999999999999H\"` which is larger than any possible finite duration in Kotlin.\n *\n * Negative durations are indicated with the sign `-` in the beginning of the returned string, for example, `\"-PT5M30S\"`.\n *\n * @sample samples.time.Durations.toIsoString\n */\n public fun toIsoString(): String = buildString {\n if (isNegative()) append('-')\n append(\"PT\")\n this@Duration.absoluteValue.toComponents { hours, minutes, seconds, nanoseconds ->\n @Suppress(\"NAME_SHADOWING\")\n var hours = hours\n if (isInfinite()) {\n // use large enough value instead of Long.MAX_VALUE\n hours = 9_999_999_999_999\n }\n val hasHours = hours != 0L\n val hasSeconds = seconds != 0 || nanoseconds != 0\n val hasMinutes = minutes != 0 || (hasSeconds && hasHours)\n if (hasHours) {\n append(hours).append('H')\n }\n if (hasMinutes) {\n append(minutes).append('M')\n }\n if (hasSeconds || (!hasHours && !hasMinutes)) {\n appendFractional(seconds, nanoseconds, 9, \"S\", isoZeroes = true)\n }\n }\n }\n\n}\n\n// constructing from number of units\n// extension functions\n\n/** Returns a [Duration] equal to this [Int] number of the specified [unit]. */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalTime::class)\npublic fun Int.toDuration(unit: DurationUnit): Duration {\n return if (unit <= DurationUnit.SECONDS) {\n durationOfNanos(convertDurationUnitOverflow(this.toLong(), unit, DurationUnit.NANOSECONDS))\n } else\n toLong().toDuration(unit)\n}\n\n/** Returns a [Duration] equal to this [Long] number of the specified [unit]. */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalTime::class)\npublic fun Long.toDuration(unit: DurationUnit): Duration {\n val maxNsInUnit = convertDurationUnitOverflow(MAX_NANOS, DurationUnit.NANOSECONDS, unit)\n if (this in -maxNsInUnit..maxNsInUnit) {\n return durationOfNanos(convertDurationUnitOverflow(this, unit, DurationUnit.NANOSECONDS))\n } else {\n val millis = convertDurationUnit(this, unit, DurationUnit.MILLISECONDS)\n return durationOfMillis(millis.coerceIn(-MAX_MILLIS, MAX_MILLIS))\n }\n}\n\n/**\n * Returns a [Duration] equal to this [Double] number of the specified [unit].\n *\n * Depending on its magnitude, the value is rounded to an integer number of nanoseconds or milliseconds.\n *\n * @throws IllegalArgumentException if this `Double` value is `NaN`.\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalTime::class)\npublic fun Double.toDuration(unit: DurationUnit): Duration {\n val valueInNs = convertDurationUnit(this, unit, DurationUnit.NANOSECONDS)\n require(!valueInNs.isNaN()) { \"Duration value cannot be NaN.\" }\n val nanos = valueInNs.roundToLong()\n return if (nanos in -MAX_NANOS..MAX_NANOS) {\n durationOfNanos(nanos)\n } else {\n val millis = convertDurationUnit(this, unit, DurationUnit.MILLISECONDS).roundToLong()\n durationOfMillisNormalized(millis)\n }\n}\n\n// constructing from number of units\n// deprecated extension properties\n\n/** Returns a [Duration] equal to this [Int] number of nanoseconds. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Int.nanoseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.nanoseconds\", \"kotlin.time.Duration.Companion.nanoseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Int.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)\n\n/** Returns a [Duration] equal to this [Long] number of nanoseconds. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Long.nanoseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.nanoseconds\", \"kotlin.time.Duration.Companion.nanoseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Long.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)\n\n/**\n * Returns a [Duration] equal to this [Double] number of nanoseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Double.nanoseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.nanoseconds\", \"kotlin.time.Duration.Companion.nanoseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Double.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS)\n\n\n/** Returns a [Duration] equal to this [Int] number of microseconds. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Int.microseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.microseconds\", \"kotlin.time.Duration.Companion.microseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Int.microseconds get() = toDuration(DurationUnit.MICROSECONDS)\n\n/** Returns a [Duration] equal to this [Long] number of microseconds. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Long.microseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.microseconds\", \"kotlin.time.Duration.Companion.microseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Long.microseconds get() = toDuration(DurationUnit.MICROSECONDS)\n\n/**\n * Returns a [Duration] equal to this [Double] number of microseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Double.microseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.microseconds\", \"kotlin.time.Duration.Companion.microseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Double.microseconds get() = toDuration(DurationUnit.MICROSECONDS)\n\n\n/** Returns a [Duration] equal to this [Int] number of milliseconds. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Int.milliseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.milliseconds\", \"kotlin.time.Duration.Companion.milliseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Int.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)\n\n/** Returns a [Duration] equal to this [Long] number of milliseconds. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Long.milliseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.milliseconds\", \"kotlin.time.Duration.Companion.milliseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Long.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)\n\n/**\n * Returns a [Duration] equal to this [Double] number of milliseconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Double.milliseconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.milliseconds\", \"kotlin.time.Duration.Companion.milliseconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Double.milliseconds get() = toDuration(DurationUnit.MILLISECONDS)\n\n\n/** Returns a [Duration] equal to this [Int] number of seconds. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Int.seconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.seconds\", \"kotlin.time.Duration.Companion.seconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Int.seconds get() = toDuration(DurationUnit.SECONDS)\n\n/** Returns a [Duration] equal to this [Long] number of seconds. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Long.seconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.seconds\", \"kotlin.time.Duration.Companion.seconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Long.seconds get() = toDuration(DurationUnit.SECONDS)\n\n/**\n * Returns a [Duration] equal to this [Double] number of seconds.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Double.seconds' extension property from Duration.Companion instead.\", ReplaceWith(\"this.seconds\", \"kotlin.time.Duration.Companion.seconds\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Double.seconds get() = toDuration(DurationUnit.SECONDS)\n\n\n/** Returns a [Duration] equal to this [Int] number of minutes. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Int.minutes' extension property from Duration.Companion instead.\", ReplaceWith(\"this.minutes\", \"kotlin.time.Duration.Companion.minutes\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Int.minutes get() = toDuration(DurationUnit.MINUTES)\n\n/** Returns a [Duration] equal to this [Long] number of minutes. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Long.minutes' extension property from Duration.Companion instead.\", ReplaceWith(\"this.minutes\", \"kotlin.time.Duration.Companion.minutes\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Long.minutes get() = toDuration(DurationUnit.MINUTES)\n\n/**\n * Returns a [Duration] equal to this [Double] number of minutes.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Double.minutes' extension property from Duration.Companion instead.\", ReplaceWith(\"this.minutes\", \"kotlin.time.Duration.Companion.minutes\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Double.minutes get() = toDuration(DurationUnit.MINUTES)\n\n\n/** Returns a [Duration] equal to this [Int] number of hours. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Int.hours' extension property from Duration.Companion instead.\", ReplaceWith(\"this.hours\", \"kotlin.time.Duration.Companion.hours\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Int.hours get() = toDuration(DurationUnit.HOURS)\n\n/** Returns a [Duration] equal to this [Long] number of hours. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Long.hours' extension property from Duration.Companion instead.\", ReplaceWith(\"this.hours\", \"kotlin.time.Duration.Companion.hours\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Long.hours get() = toDuration(DurationUnit.HOURS)\n\n/**\n * Returns a [Duration] equal to this [Double] number of hours.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Double.hours' extension property from Duration.Companion instead.\", ReplaceWith(\"this.hours\", \"kotlin.time.Duration.Companion.hours\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Double.hours get() = toDuration(DurationUnit.HOURS)\n\n\n/** Returns a [Duration] equal to this [Int] number of days. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Int.days' extension property from Duration.Companion instead.\", ReplaceWith(\"this.days\", \"kotlin.time.Duration.Companion.days\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Int.days get() = toDuration(DurationUnit.DAYS)\n\n/** Returns a [Duration] equal to this [Long] number of days. */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Long.days' extension property from Duration.Companion instead.\", ReplaceWith(\"this.days\", \"kotlin.time.Duration.Companion.days\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Long.days get() = toDuration(DurationUnit.DAYS)\n\n/**\n * Returns a [Duration] equal to this [Double] number of days.\n *\n * @throws IllegalArgumentException if this [Double] value is `NaN`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Use 'Double.days' extension property from Duration.Companion instead.\", ReplaceWith(\"this.days\", \"kotlin.time.Duration.Companion.days\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\", errorSince = \"1.8\", hiddenSince = \"1.9\")\npublic val Double.days get() = toDuration(DurationUnit.DAYS)\n\n\n/** Returns a duration whose value is the specified [duration] value multiplied by this number. */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalTime::class)\n@kotlin.internal.InlineOnly\npublic inline operator fun Int.times(duration: Duration): Duration = duration * this\n\n/**\n * Returns a duration whose value is the specified [duration] value multiplied by this number.\n *\n * The operation may involve rounding when the result cannot be represented exactly with a [Double] number.\n *\n * @throws IllegalArgumentException if the operation results in a `NaN` value.\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalTime::class)\n@kotlin.internal.InlineOnly\npublic inline operator fun Double.times(duration: Duration): Duration = duration * this\n\n\n\nprivate fun parseDuration(value: String, strictIso: Boolean): Duration {\n var length = value.length\n if (length == 0) throw IllegalArgumentException(\"The string is empty\")\n var index = 0\n var result = Duration.ZERO\n val infinityString = \"Infinity\"\n when (value[index]) {\n '+', '-' -> index++\n }\n val hasSign = index > 0\n val isNegative = hasSign && value.startsWith('-')\n when {\n length <= index ->\n throw IllegalArgumentException(\"No components\")\n value[index] == 'P' -> {\n if (++index == length) throw IllegalArgumentException()\n val nonDigitSymbols = \"+-.\"\n var isTimeComponent = false\n var prevUnit: DurationUnit? = null\n while (index < length) {\n if (value[index] == 'T') {\n if (isTimeComponent || ++index == length) throw IllegalArgumentException()\n isTimeComponent = true\n continue\n }\n val component = value.substringWhile(index) { it in '0'..'9' || it in nonDigitSymbols }\n if (component.isEmpty()) throw IllegalArgumentException()\n index += component.length\n val unitChar = value.getOrElse(index) { throw IllegalArgumentException(\"Missing unit for value $component\") }\n index++\n val unit = durationUnitByIsoChar(unitChar, isTimeComponent)\n if (prevUnit != null && prevUnit <= unit) throw IllegalArgumentException(\"Unexpected order of duration components\")\n prevUnit = unit\n val dotIndex = component.indexOf('.')\n if (unit == DurationUnit.SECONDS && dotIndex > 0) {\n val whole = component.substring(0, dotIndex)\n result += parseOverLongIsoComponent(whole).toDuration(unit)\n result += component.substring(dotIndex).toDouble().toDuration(unit)\n } else {\n result += parseOverLongIsoComponent(component).toDuration(unit)\n }\n }\n }\n strictIso ->\n throw IllegalArgumentException()\n value.regionMatches(index, infinityString, 0, length = maxOf(length - index, infinityString.length), ignoreCase = true) -> {\n result = Duration.INFINITE\n }\n else -> {\n // parse default string format\n var prevUnit: DurationUnit? = null\n var afterFirst = false\n var allowSpaces = !hasSign\n if (hasSign && value[index] == '(' && value.last() == ')') {\n allowSpaces = true\n if (++index == --length) throw IllegalArgumentException(\"No components\")\n }\n while (index < length) {\n if (afterFirst && allowSpaces) {\n index = value.skipWhile(index) { it == ' ' }\n }\n afterFirst = true\n val component = value.substringWhile(index) { it in '0'..'9' || it == '.' }\n if (component.isEmpty()) throw IllegalArgumentException()\n index += component.length\n val unitName = value.substringWhile(index) { it in 'a'..'z' }\n index += unitName.length\n val unit = durationUnitByShortName(unitName)\n if (prevUnit != null && prevUnit <= unit) throw IllegalArgumentException(\"Unexpected order of duration components\")\n prevUnit = unit\n val dotIndex = component.indexOf('.')\n if (dotIndex > 0) {\n val whole = component.substring(0, dotIndex)\n result += whole.toLong().toDuration(unit)\n result += component.substring(dotIndex).toDouble().toDuration(unit)\n if (index < length) throw IllegalArgumentException(\"Fractional component must be last\")\n } else {\n result += component.toLong().toDuration(unit)\n }\n }\n }\n }\n return if (isNegative) -result else result\n}\n\n\nprivate fun parseOverLongIsoComponent(value: String): Long {\n val length = value.length\n var startIndex = 0\n if (length > 0 && value[0] in \"+-\") startIndex++\n if ((length - startIndex) > 16 && (startIndex..value.lastIndex).all { value[it] in '0'..'9' }) {\n // all chars are digits, but more than ceiling(log10(MAX_MILLIS / 1000)) of them\n return if (value[0] == '-') Long.MIN_VALUE else Long.MAX_VALUE\n }\n // TODO: replace with just toLong after min JDK becomes 8\n return if (value.startsWith(\"+\")) value.drop(1).toLong() else value.toLong()\n}\n\n\n\nprivate inline fun String.substringWhile(startIndex: Int, predicate: (Char) -> Boolean): String =\n substring(startIndex, skipWhile(startIndex, predicate))\n\nprivate inline fun String.skipWhile(startIndex: Int, predicate: (Char) -> Boolean): Int {\n var i = startIndex\n while (i < length && predicate(this[i])) i++\n return i\n}\n\n\n\n\n\n// The ranges are chosen so that they are:\n// - symmetric relative to zero: this greatly simplifies operations with sign, e.g. unaryMinus and minus.\n// - non-overlapping, but adjacent: the first value that doesn't fit in nanos range, can be exactly represented in millis.\n\ninternal const val NANOS_IN_MILLIS = 1_000_000\n// maximum number duration can store in nanosecond range\ninternal const val MAX_NANOS = Long.MAX_VALUE / 2 / NANOS_IN_MILLIS * NANOS_IN_MILLIS - 1 // ends in ..._999_999\n// maximum number duration can store in millisecond range, also encodes an infinite value\ninternal const val MAX_MILLIS = Long.MAX_VALUE / 2\n// MAX_NANOS expressed in milliseconds\nprivate const val MAX_NANOS_IN_MILLIS = MAX_NANOS / NANOS_IN_MILLIS\n\nprivate fun nanosToMillis(nanos: Long): Long = nanos / NANOS_IN_MILLIS\nprivate fun millisToNanos(millis: Long): Long = millis * NANOS_IN_MILLIS\n\nprivate fun durationOfNanos(normalNanos: Long) = Duration(normalNanos shl 1)\nprivate fun durationOfMillis(normalMillis: Long) = Duration((normalMillis shl 1) + 1)\nprivate fun durationOf(normalValue: Long, unitDiscriminator: Int) = Duration((normalValue shl 1) + unitDiscriminator)\nprivate fun durationOfNanosNormalized(nanos: Long) =\n if (nanos in -MAX_NANOS..MAX_NANOS) {\n durationOfNanos(nanos)\n } else {\n durationOfMillis(nanosToMillis(nanos))\n }\n\nprivate fun durationOfMillisNormalized(millis: Long) =\n if (millis in -MAX_NANOS_IN_MILLIS..MAX_NANOS_IN_MILLIS) {\n durationOfNanos(millisToNanos(millis))\n } else {\n durationOfMillis(millis.coerceIn(-MAX_MILLIS, MAX_MILLIS))\n }\n\ninternal expect val durationAssertionsEnabled: Boolean\n\ninternal expect fun formatToExactDecimals(value: Double, decimals: Int): String\ninternal expect fun formatUpToDecimals(value: Double, decimals: Int): String\n","/*\n * Copyright 2010-2021 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\")\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-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/**\n * When applied to a function or property, enables a compiler optimization that evaluates that function or property\n * at compile-time and replaces calls to it with the computed result.\n */\n@Target(AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)\n@Retention(AnnotationRetention.BINARY)\n@SinceKotlin(\"1.7\")\ninternal annotation class IntrinsicConstEvaluation\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\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-2020 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\nimport kotlin.random.Random\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 *\n * @sample samples.collections.Sequences.Transformations.flattenSequenceOfSequences\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 * @sample samples.collections.Sequences.Transformations.flattenSequenceOfLists\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 *\n * @sample samples.collections.Sequences.Transformations.unzip\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 * Returns a sequence that yields elements of this sequence randomly shuffled.\n *\n * Note that every iteration of the sequence returns elements in a different order.\n *\n * The operation is _intermediate_ and _stateful_.\n */\n@SinceKotlin(\"1.4\")\npublic fun Sequence.shuffled(): Sequence = shuffled(Random)\n\n/**\n * Returns a sequence that yields elements of this sequence randomly shuffled\n * using the specified [random] instance as the source of randomness.\n *\n * Note that every iteration of the sequence returns elements in a different order.\n *\n * The operation is _intermediate_ and _stateful_.\n */\n@SinceKotlin(\"1.4\")\npublic fun Sequence.shuffled(random: Random): Sequence = sequence {\n val buffer = toMutableList()\n while (buffer.isNotEmpty()) {\n val j = random.nextInt(buffer.size)\n val last = buffer.removeLast()\n val value = if (j < buffer.size) buffer.set(j, last) else last\n yield(value)\n }\n}\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\ninternal fun flatMapIndexed(source: Sequence, transform: (Int, T) -> C, iterator: (C) -> Iterator): Sequence =\n sequence {\n var index = 0\n for (element in source) {\n val result = transform(checkIndexOverflow(index++), element)\n yieldAll(iterator(result))\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 for the second time and the following times.\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.failRequireNotNullWithLazyMessage\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-2023 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 @Suppress(\"USELESS_CAST\")\n if ((element as Any?) !is Char) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: Char): Int {\n @Suppress(\"USELESS_CAST\")\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@kotlin.internal.LowPriorityInOverloadResolution\npublic actual infix fun Array.contentDeepEquals(other: Array): Boolean {\n return this.contentDeepEquals(other)\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 * The specified arrays are also considered deeply equal if both are `null`.\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.4\")\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@kotlin.internal.LowPriorityInOverloadResolution\npublic actual fun Array.contentDeepHashCode(): Int {\n return this.contentDeepHashCode()\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.4\")\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@kotlin.internal.LowPriorityInOverloadResolution\npublic actual fun Array.contentDeepToString(): String {\n return this.contentDeepToString()\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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.4\")\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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@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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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 */\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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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 nativeFill(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 @Suppress(\"DEPRECATION\")\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 */\n@Deprecated(\"Use sortWith instead\", ReplaceWith(\"this.sortWith(Comparator(comparison))\"))\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\npublic fun Array.sort(comparison: (a: T, b: T) -> Int): Unit {\n if (size > 1) sortArrayWith(this, comparison)\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArrayOfComparable\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun > Array.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n sortArrayWith(this, fromIndex, toIndex, naturalOrder())\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun ByteArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val subarray = this.asDynamic().subarray(fromIndex, toIndex).unsafeCast()\n subarray.sort()\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun ShortArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val subarray = this.asDynamic().subarray(fromIndex, toIndex).unsafeCast()\n subarray.sort()\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun IntArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val subarray = this.asDynamic().subarray(fromIndex, toIndex).unsafeCast()\n subarray.sort()\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun LongArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n sortArrayWith(this.unsafeCast>(), fromIndex, toIndex, naturalOrder())\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun FloatArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val subarray = this.asDynamic().subarray(fromIndex, toIndex).unsafeCast()\n subarray.sort()\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun DoubleArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val subarray = this.asDynamic().subarray(fromIndex, toIndex).unsafeCast()\n subarray.sort()\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n val subarray = this.asDynamic().subarray(fromIndex, toIndex).unsafeCast()\n subarray.sort()\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@Deprecated(\"Use other sorting functions from the Standard Library\")\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sort(noinline comparison: (a: Byte, b: Byte) -> Int): Unit {\n nativeSort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@Deprecated(\"Use other sorting functions from the Standard Library\")\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sort(noinline comparison: (a: Short, b: Short) -> Int): Unit {\n nativeSort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@Deprecated(\"Use other sorting functions from the Standard Library\")\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sort(noinline comparison: (a: Int, b: Int) -> Int): Unit {\n nativeSort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@Deprecated(\"Use other sorting functions from the Standard Library\")\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sort(noinline comparison: (a: Long, b: Long) -> Int): Unit {\n nativeSort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@Deprecated(\"Use other sorting functions from the Standard Library\")\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sort(noinline comparison: (a: Float, b: Float) -> Int): Unit {\n nativeSort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@Deprecated(\"Use other sorting functions from the Standard Library\")\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sort(noinline comparison: (a: Double, b: Double) -> Int): Unit {\n nativeSort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@Deprecated(\"Use other sorting functions from the Standard Library\")\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sort(noinline comparison: (a: Char, b: Char) -> Int): Unit {\n nativeSort(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 * Sorts a range in the array in-place with the given [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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.4\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun Array.sortWith(comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n sortArrayWith(this, fromIndex, toIndex, 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-2022 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 * Non-null values are compared with the provided [comparator].\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 * Non-null values are compared according to their [natural order][naturalOrder].\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 * Non-null values are compared with the provided [comparator].\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 * Non-null values are compared according to their [natural order][naturalOrder].\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 * The natural order of a `Comparable` type here means the order established by its `compareTo` function.\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 * The natural order of a `Comparable` type here means the order established by its `compareTo` function.\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 */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\")\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\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 * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#takeif-and-takeunless).\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 * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#takeif-and-takeunless).\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-2023 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 * \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\npublic actual inline fun maxOf(a: Byte, b: Byte): Byte {\n return maxOf(a.toInt(), b.toInt()).unsafeCast()\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun maxOf(a: Short, b: Short): Short {\n return maxOf(a.toInt(), b.toInt()).unsafeCast()\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun maxOf(a: Int, b: Int): Int {\n return JsMath.max(a, b)\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@Suppress(\"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 * If either value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun maxOf(a: Float, b: Float): Float {\n return JsMath.max(a, b)\n}\n\n/**\n * Returns the greater of two values.\n * \n * If either value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun maxOf(a: Double, b: Double): Double {\n return JsMath.max(a, b)\n}\n\n/**\n * Returns the greater of three values.\n * \n * If there are multiple equal maximal values, returns the first of them.\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\npublic actual inline fun maxOf(a: Byte, b: Byte, c: Byte): Byte {\n return JsMath.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\npublic actual inline fun maxOf(a: Short, b: Short, c: Short): Short {\n return JsMath.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\npublic actual inline fun maxOf(a: Int, b: Int, c: Int): Int {\n return JsMath.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 * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun maxOf(a: Float, b: Float, c: Float): Float {\n return JsMath.max(a, b, c)\n}\n\n/**\n * Returns the greater of three values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun maxOf(a: Double, b: Double, c: Double): Double {\n return JsMath.max(a, b, c)\n}\n\n/**\n * Returns the greater of the given values.\n * \n * If there are multiple equal maximal values, returns the first of them.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun > maxOf(a: T, vararg other: T): T {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun maxOf(a: Byte, vararg other: Byte): Byte {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun maxOf(a: Short, vararg other: Short): Short {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun maxOf(a: Int, vararg other: Int): Int {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun maxOf(a: Long, vararg other: Long): Long {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun maxOf(a: Float, vararg other: Float): Float {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun maxOf(a: Double, vararg other: Double): Double {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the smaller of two values.\n * \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\npublic actual inline fun minOf(a: Byte, b: Byte): Byte {\n return minOf(a.toInt(), b.toInt()).unsafeCast()\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun minOf(a: Short, b: Short): Short {\n return minOf(a.toInt(), b.toInt()).unsafeCast()\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun minOf(a: Int, b: Int): Int {\n return JsMath.min(a, b)\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@Suppress(\"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 * If either value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun minOf(a: Float, b: Float): Float {\n return JsMath.min(a, b)\n}\n\n/**\n * Returns the smaller of two values.\n * \n * If either value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun minOf(a: Double, b: Double): Double {\n return JsMath.min(a, b)\n}\n\n/**\n * Returns the smaller of three values.\n * \n * If there are multiple equal minimal values, returns the first of them.\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\npublic actual inline fun minOf(a: Byte, b: Byte, c: Byte): Byte {\n return JsMath.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\npublic actual inline fun minOf(a: Short, b: Short, c: Short): Short {\n return JsMath.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\npublic actual inline fun minOf(a: Int, b: Int, c: Int): Int {\n return JsMath.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 * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun minOf(a: Float, b: Float, c: Float): Float {\n return JsMath.min(a, b, c)\n}\n\n/**\n * Returns the smaller of three values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun minOf(a: Double, b: Double, c: Double): Double {\n return JsMath.min(a, b, c)\n}\n\n/**\n * Returns the smaller of the given values.\n * \n * If there are multiple equal minimal values, returns the first of them.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun > minOf(a: T, vararg other: T): T {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun minOf(a: Byte, vararg other: Byte): Byte {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun minOf(a: Short, vararg other: Short): Short {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun minOf(a: Int, vararg other: Int): Int {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun minOf(a: Long, vararg other: Long): Long {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun minOf(a: Float, vararg other: Float): Float {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun minOf(a: Double, vararg other: Double): Double {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n","/*\n * Copyright 2010-2023 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.*\nimport kotlin.jvm.*\n\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@JvmInline\npublic value class ULong @kotlin.internal.IntrinsicConstEvaluation @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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\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, truncating the result to an integer that is closer to zero. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = ulongDivide(this, other)\n\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): ULong = this.rem(other.toULong())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): ULong = this.rem(other.toULong())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): ULong = this.rem(other.toULong())\n /**\n * Calculates the remainder of truncating division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = ulongRemainder(this, other)\n\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UByte): ULong = this.floorDiv(other.toULong())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UShort): ULong = this.floorDiv(other.toULong())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: UInt): ULong = this.floorDiv(other.toULong())\n /**\n * Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.\n *\n * For unsigned types, the results of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun floorDiv(other: ULong): ULong = div(other)\n\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UByte): UByte = this.mod(other.toULong()).toUByte()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UShort): UShort = this.mod(other.toULong()).toUShort()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: UInt): UInt = this.mod(other.toULong()).toUInt()\n /**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is always less than the divisor.\n *\n * For unsigned types, the remainders of flooring division and truncating division are the same.\n */\n @kotlin.internal.InlineOnly\n public inline fun mod(other: ULong): ULong = rem(other)\n\n /**\n * Returns this value incremented by one.\n *\n * @sample samples.misc.Builtins.inc\n */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): ULong = ULong(data.inc())\n\n /**\n * Returns this value decremented by one.\n *\n * @sample samples.misc.Builtins.dec\n */\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 /**\n * Creates a range from this value up to but excluding the specified [other] value.\n *\n * If the [other] value is less than or equal to `this` value, then the returned range is empty.\n */\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n @kotlin.internal.InlineOnly\n public inline operator fun rangeUntil(other: ULong): ULongRange = this until other\n\n /**\n * Shifts this value left by the [bitCount] number of bits.\n *\n * Note that only the six lowest-order bits of the [bitCount] are used as the shift distance.\n * The shift distance actually used is therefore always in the range `0..63`.\n */\n @kotlin.internal.InlineOnly\n public inline infix fun shl(bitCount: Int): ULong = ULong(data shl bitCount)\n\n /**\n * Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros.\n *\n * Note that only the six lowest-order bits of the [bitCount] are used as the shift distance.\n * The shift distance actually used is therefore always in the range `0..63`.\n */\n @kotlin.internal.InlineOnly\n public inline infix fun shr(bitCount: Int): ULong = ULong(data ushr bitCount)\n\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Double.toULong(): ULong = doubleToULong(this)\n","/*\n * Copyright 2010-2023 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 list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 1.\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 list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 2.\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 list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 3.\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 list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 4.\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 list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 5.\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the first element.\n * \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 the first element.\n * \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 non-null value produced by [transform] function being applied to elements of this collection in iteration order,\n * or throws [NoSuchElementException] if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.firstNotNullOf(transform: (T) -> R?): R {\n return firstNotNullOfOrNull(transform) ?: throw NoSuchElementException(\"No element of the collection was transformed to a non-null value.\")\n}\n\n/**\n * Returns the first non-null value produced by [transform] function being applied to elements of this collection in iteration order,\n * or `null` if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.firstNotNullOfOrNull(transform: (T) -> R?): R? {\n for (element in this) {\n val result = transform(element)\n if (result != null) {\n return result\n }\n }\n return null\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @throws NoSuchElementException if the collection is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the list is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 a random element from this collection, or `null` if this collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Collection.randomOrNull(): T? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this collection using the specified source of randomness, or `null` if this collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Collection.randomOrNull(random: Random): T? {\n if (isEmpty())\n return null\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIsInstance\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 * \n * @sample samples.collections.Collections.Filtering.filterIsInstanceTo\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filterNotNull\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 * \n * @sample samples.collections.Collections.Filtering.filterNotNullTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * Randomly shuffles elements in this list in-place 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 this[j] = this.set(i, this[j])\n }\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Transformations.associate\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 * \n * @sample samples.collections.Collections.Transformations.associateBy\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 * \n * @sample samples.collections.Collections.Transformations.associateByWithValueTransform\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 * \n * @sample samples.collections.Collections.Transformations.associateByTo\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 * \n * @sample samples.collections.Collections.Transformations.associateByToWithValueTransform\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 * \n * @sample samples.collections.Collections.Transformations.associateTo\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 * @sample samples.collections.Collections.Transformations.associateWithTo\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 new [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 new [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 new [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 * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun Iterable.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 collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequence\")\npublic inline fun Iterable.flatMap(transform: (T) -> Sequence): 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\n * and its index in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.flatMapIndexed(transform: (index: Int, T) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequence\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.flatMapIndexed(transform: (index: Int, T) -> Sequence): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(checkIndexOverflow(index++), 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\n * and its index in the original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequenceTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Sequence): C {\n var index = 0\n for (element in this) {\n val list = transform(checkIndexOverflow(index++), 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 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 * Appends all elements yielded from results of [transform] function being invoked on each element of original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequenceTo\")\npublic inline fun > Iterable.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 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 * \n * @sample samples.collections.Collections.Transformations.mapNotNull\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 * Among equal elements of the given collection, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source collection.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * Among elements of the given collection with equal keys, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source collection.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 new [MutableSet] 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 * Note that if the collection contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the collection is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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 * \n * Returns the specified [initial] value if the collection is empty.\n * \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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the list is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next 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 * \n * Returns the specified [initial] value if the list is empty.\n * \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 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.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.max(): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.max(): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun > Iterable.max(): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the collection is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Iterable.maxBy(selector: (T) -> R): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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 yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Iterable.maxByOrNull(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 largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOf(selector: (T) -> Double): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOf(selector: (T) -> Float): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.maxOf(selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfOrNull(selector: (T) -> Double): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfOrNull(selector: (T) -> Float): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.maxOfOrNull(selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfWith(comparator: Comparator, selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\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.4\")\npublic fun Iterable.maxOrNull(): Double? {\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 max = maxOf(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.4\")\npublic fun Iterable.maxOrNull(): Float? {\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 max = maxOf(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.4\")\npublic fun > Iterable.maxOrNull(): 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 having the largest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.maxWith(comparator: Comparator): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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 first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.maxWithOrNull(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.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.min(): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.min(): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun > Iterable.min(): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the collection is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Iterable.minBy(selector: (T) -> R): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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 yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Iterable.minByOrNull(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 smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOf(selector: (T) -> Double): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOf(selector: (T) -> Float): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.minOf(selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfOrNull(selector: (T) -> Double): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfOrNull(selector: (T) -> Float): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.minOfOrNull(selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfWith(comparator: Comparator, selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\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.4\")\npublic fun Iterable.minOrNull(): Double? {\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 min = minOf(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.4\")\npublic fun Iterable.minOrNull(): Float? {\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 min = minOf(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.4\")\npublic fun > Iterable.minOrNull(): 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 having the smallest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.minWith(comparator: Comparator): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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 the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.minWithOrNull(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 * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the collection itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > C.onEachIndexed(action: (index: Int, T) -> Unit): C {\n return apply { forEachIndexed(action) }\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.\n * \n * Throws an exception if this collection is empty. If the collection can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this collection is empty. If the collection can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 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 * \n * Returns `null` if the collection is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.reduceIndexedOrNull(operation: (index: Int, acc: S, T) -> S): S? {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return null\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 the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the collection is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.reduceOrNull(operation: (acc: S, T) -> S): S? {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return null\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 last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this list is empty. If the list can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this list is empty. If the list can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 * Accumulates value starting with the 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 * \n * Returns `null` if the list is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun List.reduceRightIndexedOrNull(operation: (index: Int, T, acc: S) -> S): S? {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n return null\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 * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the list is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun List.reduceRightOrNull(operation: (T, acc: S) -> S): S? {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n return null\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningFold(initial: R, operation: (acc: R, T) -> R): List {\n val estimatedSize = collectionSizeOrDefault(9)\n if (estimatedSize == 0) return listOf(initial)\n val result = ArrayList(estimatedSize + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n val estimatedSize = collectionSizeOrDefault(9)\n if (estimatedSize == 0) return listOf(initial)\n val result = ArrayList(estimatedSize + 1).apply { add(initial) }\n var index = 0\n var accumulator = initial\n for (element in this) {\n accumulator = operation(index++, accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this collection.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and the element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.runningReduce(operation: (acc: S, T) -> S): List {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return emptyList()\n var accumulator: S = iterator.next()\n val result = ArrayList(collectionSizeOrDefault(10)).apply { add(accumulator) }\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with the first element of this collection.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningReduceIndexed(operation: (index: Int, acc: S, T) -> S): List {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return emptyList()\n var accumulator: S = iterator.next()\n val result = ArrayList(collectionSizeOrDefault(10)).apply { add(accumulator) }\n var index = 1\n while (iterator.hasNext()) {\n accumulator = operation(index++, accumulator, iterator.next())\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.scan(initial: R, operation: (acc: R, T) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.scanIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Double): Double {\n var sum: Double = 0.toDouble()\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 */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Int): Int {\n var sum: Int = 0.toInt()\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 */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Long): Long {\n var sum: Long = 0.toLong()\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 */\n@SinceKotlin(\"1.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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 */\n@SinceKotlin(\"1.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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 fewer 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 fewer 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 */\npublic operator fun Iterable.minus(elements: Array): List {\n if (elements.isEmpty()) return this.toList()\n return this.filterNot { it in elements }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] collection.\n */\npublic operator fun Iterable.minus(elements: Iterable): List {\n val other = elements.convertToListIfNotCollection()\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 */\npublic operator fun Iterable.minus(elements: Sequence): List {\n val other = elements.toList()\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 * \n * @sample samples.collections.Iterables.Operations.partition\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 fewer 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 fewer 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-2023 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\nimport kotlin.js.arrayBufferIsView\n\n/**\n * Returns the array if it's not `null`, or an empty array otherwise.\n * @sample samples.collections.Arrays.Usage.arrayOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun Array?.orEmpty(): Array = this ?: emptyArray()\n\n/**\n * Returns a *typed* array containing all of the elements of this collection.\n *\n * Allocates an array of runtime type `T` having its size equal to the size of this collection\n * and populates the array with the elements of this collection.\n * @sample samples.collections.Collections.Collections.collectionToTypedArray\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 a new read-only list containing only the specified object [element].\n *\n * @sample samples.collections.Collections.Lists.singletonReadOnlyList\n */\npublic actual fun listOf(element: T): List = arrayListOf(element)\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildListInternal(builderAction: MutableList.() -> Unit): List {\n return ArrayList().apply(builderAction).build()\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildListInternal(capacity: Int, builderAction: MutableList.() -> Unit): List {\n checkBuilderCapacity(capacity)\n return ArrayList(capacity).apply(builderAction).build()\n}\n\n/**\n * Returns a new read-only set containing only the specified object [element].\n *\n * @sample samples.collections.Collections.Sets.singletonReadOnlySet\n */\npublic actual fun setOf(element: T): Set = hashSetOf(element)\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildSetInternal(builderAction: MutableSet.() -> Unit): Set {\n return LinkedHashSet().apply(builderAction).build()\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildSetInternal(capacity: Int, builderAction: MutableSet.() -> Unit): Set {\n return LinkedHashSet(capacity).apply(builderAction).build()\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildMapInternal(builderAction: MutableMap.() -> Unit): Map {\n return LinkedHashMap().apply(builderAction).build()\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildMapInternal(capacity: Int, builderAction: MutableMap.() -> Unit): Map {\n return LinkedHashMap(capacity).apply(builderAction).build()\n}\n\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 *\n * @sample samples.collections.Collections.Sorting.sortMutableList\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 *\n * @sample samples.collections.Collections.Sorting.sortMutableListWith\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 (arrayBufferIsView(destination) && arrayBufferIsView(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/**\n * JS map and set implementations do not make use of capacities or load factors.\n */\n@PublishedApi\ninternal actual fun mapCapacity(expectedSize: Int) = expectedSize\n\n/**\n * Checks a collection builder function capacity argument.\n * In JS no validation is made in Map/Set constructor yet.\n */\n@SinceKotlin(\"1.3\")\n@PublishedApi\ninternal fun checkBuilderCapacity(capacity: Int) {\n require(capacity >= 0) { \"capacity must be non-negative.\" }\n}\n\n/**\n * Returns a new read-only map, mapping only the specified key to the\n * specified value.\n *\n * @sample samples.collections.Maps.Instantiation.mapFromPairs\n */\npublic actual fun mapOf(pair: Pair): Map = hashMapOf(pair)","/*\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] that wraps each element produced by the original iterator\n * into an [IndexedValue] containing the index of that element and the element itself.\n *\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-2023 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 * \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 * If either value is `NaN`, returns `NaN`.\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 * If either value is `NaN`, returns `NaN`.\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 * If there are multiple equal maximal values, returns the first of them.\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 * If any value is `NaN`, returns `NaN`.\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 * If any value is `NaN`, returns `NaN`.\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 * If there are multiple equal maximal values, returns the first of them.\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 * \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 greater of the given values.\n * \n * If there are multiple equal maximal values, returns the first of them.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun > maxOf(a: T, vararg other: T): T\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun maxOf(a: Byte, vararg other: Byte): Byte\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun maxOf(a: Short, vararg other: Short): Short\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun maxOf(a: Int, vararg other: Int): Int\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun maxOf(a: Long, vararg other: Long): Long\n\n/**\n * Returns the greater of the given values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun maxOf(a: Float, vararg other: Float): Float\n\n/**\n * Returns the greater of the given values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun maxOf(a: Double, vararg other: Double): Double\n\n/**\n * Returns the greater of the given values according to the order specified by the given [comparator].\n * \n * If there are multiple equal maximal values, returns the first of them.\n */\n@SinceKotlin(\"1.4\")\npublic fun maxOf(a: T, vararg other: T, comparator: Comparator): T {\n var max = a\n for (e in other) if (comparator.compare(max, e) < 0) max = e\n return max\n}\n\n/**\n * Returns the smaller of two values.\n * \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 * If either value is `NaN`, returns `NaN`.\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 * If either value is `NaN`, returns `NaN`.\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 * If there are multiple equal minimal values, returns the first of them.\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 * If any value is `NaN`, returns `NaN`.\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 * If any value is `NaN`, returns `NaN`.\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 * If there are multiple equal minimal values, returns the first of them.\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 * \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 * Returns the smaller of the given values.\n * \n * If there are multiple equal minimal values, returns the first of them.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun > minOf(a: T, vararg other: T): T\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun minOf(a: Byte, vararg other: Byte): Byte\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun minOf(a: Short, vararg other: Short): Short\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun minOf(a: Int, vararg other: Int): Int\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun minOf(a: Long, vararg other: Long): Long\n\n/**\n * Returns the smaller of the given values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun minOf(a: Float, vararg other: Float): Float\n\n/**\n * Returns the smaller of the given values.\n * \n * If any value is `NaN`, returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun minOf(a: Double, vararg other: Double): Double\n\n/**\n * Returns the smaller of the given values according to the order specified by the given [comparator].\n * \n * If there are multiple equal minimal values, returns the first of them.\n */\n@SinceKotlin(\"1.4\")\npublic fun minOf(a: T, vararg other: T, comparator: Comparator): T {\n var min = a\n for (e in other) if (comparator.compare(min, e) > 0) min = e\n return min\n}\n\n","/*\n * Copyright 2010-2023 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 the first non-null value produced by [transform] function being applied to entries of this map in iteration order,\n * or throws [NoSuchElementException] if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Map.firstNotNullOf(transform: (Map.Entry) -> R?): R {\n return firstNotNullOfOrNull(transform) ?: throw NoSuchElementException(\"No element of the map was transformed to a non-null value.\")\n}\n\n/**\n * Returns the first non-null value produced by [transform] function being applied to entries of this map in iteration order,\n * or `null` if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Map.firstNotNullOfOrNull(transform: (Map.Entry) -> R?): R? {\n for (element in this) {\n val result = transform(element)\n if (result != null) {\n return result\n }\n }\n return null\n}\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 * \n * @sample samples.collections.Maps.Transformations.flatMap\n */\npublic inline fun Map.flatMap(transform: (Map.Entry) -> 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 entry of original map.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequence\")\npublic inline fun Map.flatMap(transform: (Map.Entry) -> Sequence): 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 * Appends all elements yielded from results of [transform] function being invoked on each entry of original map, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequenceTo\")\npublic inline fun > Map.flatMapTo(destination: C, transform: (Map.Entry) -> Sequence): 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 * \n * @sample samples.collections.Maps.Transformations.mapNotNull\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 * Note that if the map contains no entries, the function returns `true`\n * because there are no entries in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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.\n * \n * @throws NoSuchElementException if the map is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Map.maxBy(selector: (Map.Entry) -> R): Map.Entry {\n return entries.maxBy(selector)\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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > Map.maxByOrNull(selector: (Map.Entry) -> R): Map.Entry? {\n return entries.maxByOrNull(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOf(selector: (Map.Entry) -> Double): Double {\n return entries.maxOf(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOf(selector: (Map.Entry) -> Float): Float {\n return entries.maxOf(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Map.maxOf(selector: (Map.Entry) -> R): R {\n return entries.maxOf(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOfOrNull(selector: (Map.Entry) -> Double): Double? {\n return entries.maxOfOrNull(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOfOrNull(selector: (Map.Entry) -> Float): Float? {\n return entries.maxOfOrNull(selector)\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Map.maxOfOrNull(selector: (Map.Entry) -> R): R? {\n return entries.maxOfOrNull(selector)\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each entry in the map.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOfWith(comparator: Comparator, selector: (Map.Entry) -> R): R {\n return entries.maxOfWith(comparator, selector)\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each entry in the map or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxOfWithOrNull(comparator: Comparator, selector: (Map.Entry) -> R): R? {\n return entries.maxOfWithOrNull(comparator, selector)\n}\n\n/**\n * Returns the first entry having the largest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun Map.maxWith(comparator: Comparator>): Map.Entry {\n return entries.maxWith(comparator)\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@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxWithOrNull(comparator: Comparator>): Map.Entry? {\n return entries.maxWithOrNull(comparator)\n}\n\n/**\n * Returns the first entry yielding the smallest value of the given function.\n * \n * @throws NoSuchElementException if the map is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Map.minBy(selector: (Map.Entry) -> R): Map.Entry {\n return entries.minBy(selector)\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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun > Map.minByOrNull(selector: (Map.Entry) -> R): Map.Entry? {\n return entries.minByOrNull(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOf(selector: (Map.Entry) -> Double): Double {\n return entries.minOf(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOf(selector: (Map.Entry) -> Float): Float {\n return entries.minOf(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Map.minOf(selector: (Map.Entry) -> R): R {\n return entries.minOf(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOfOrNull(selector: (Map.Entry) -> Double): Double? {\n return entries.minOfOrNull(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOfOrNull(selector: (Map.Entry) -> Float): Float? {\n return entries.minOfOrNull(selector)\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each entry in the map or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Map.minOfOrNull(selector: (Map.Entry) -> R): R? {\n return entries.minOfOrNull(selector)\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each entry in the map.\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOfWith(comparator: Comparator, selector: (Map.Entry) -> R): R {\n return entries.minOfWith(comparator, selector)\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each entry in the map or `null` if there are no entries.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Map.minOfWithOrNull(comparator: Comparator, selector: (Map.Entry) -> R): R? {\n return entries.minOfWithOrNull(comparator, selector)\n}\n\n/**\n * Returns the first entry having the smallest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the map is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun Map.minWith(comparator: Comparator>): Map.Entry {\n return entries.minWith(comparator)\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 */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Map.minWithOrNull(comparator: Comparator>): Map.Entry? {\n return entries.minWithOrNull(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 * Performs the given [action] on each entry, providing sequential index with the entry,\n * and returns the map itself afterwards.\n * @param [action] function that takes the index of an entry and the entry itself\n * and performs the action on the entry.\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > M.onEachIndexed(action: (index: Int, Map.Entry) -> Unit): M {\n return apply { entries.forEachIndexed(action) }\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 * \n * @sample samples.collections.Sequences.Building.sequenceFromMap\n */\npublic fun Map.asSequence(): Sequence> {\n return entries.asSequence()\n}\n\n","/*\n * Copyright 2010-2023 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 GenerateUnicodeData.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\n// 10 mappings totally\ninternal fun Char.titlecaseImpl(): String {\n val uppercase = uppercase()\n if (uppercase.length > 1) {\n return if (this == '\\u0149') uppercase else uppercase[0] + uppercase.substring(1).lowercase()\n }\n return titlecaseChar().toString()\n}\n","/*\n * Copyright 2010-2021 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 * Converts this character to lower case using Unicode mapping rules of the invariant locale.\n */\n@Deprecated(\"Use lowercaseChar() instead.\", ReplaceWith(\"lowercaseChar()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\n@kotlin.internal.InlineOnly\npublic actual inline fun Char.toLowerCase(): Char = lowercaseChar()\n\n/**\n * Converts this character to lower case using Unicode mapping rules of the invariant locale.\n *\n * This function performs one-to-one character mapping.\n * To support one-to-many character mapping use the [lowercase] function.\n * If this character has no mapping equivalent, the character itself is returned.\n *\n * @sample samples.text.Chars.lowercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic actual inline fun Char.lowercaseChar(): Char = lowercase()[0]\n\n/**\n * Converts this character to lower case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one.\n * For example, `'\\u0130'.lowercase()` returns `\"\\u0069\\u0307\"`,\n * where `'\\u0130'` is the LATIN CAPITAL LETTER I WITH DOT ABOVE character (`\u0130`).\n * If this character has no lower case mapping, the result of `toString()` of this char is returned.\n *\n * @sample samples.text.Chars.lowercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic actual inline fun Char.lowercase(): String = toString().asDynamic().toLowerCase().unsafeCast()\n\n/**\n * Converts this character to upper case using Unicode mapping rules of the invariant locale.\n */\n@Deprecated(\"Use uppercaseChar() instead.\", ReplaceWith(\"uppercaseChar()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\n@kotlin.internal.InlineOnly\npublic actual inline fun Char.toUpperCase(): Char = uppercaseChar()\n\n/**\n * Converts this character to upper case using Unicode mapping rules of the invariant locale.\n *\n * This function performs one-to-one character mapping.\n * To support one-to-many character mapping use the [uppercase] function.\n * If this character has no mapping equivalent, the character itself is returned.\n *\n * @sample samples.text.Chars.uppercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Char.uppercaseChar(): Char {\n val uppercase = uppercase()\n return if (uppercase.length > 1) this else uppercase[0]\n}\n\n/**\n * Converts this character to upper case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one.\n * For example, `'\\uFB00'.uppercase()` returns `\"\\u0046\\u0046\"`,\n * where `'\\uFB00'` is the LATIN SMALL LIGATURE FF character (`\ufb00`).\n * If this character has no upper case mapping, the result of `toString()` of this char is returned.\n *\n * @sample samples.text.Chars.uppercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic actual inline fun Char.uppercase(): String = toString().asDynamic().toUpperCase().unsafeCast()\n\n/**\n * Converts this character to title case using Unicode mapping rules of the invariant locale.\n *\n * This function performs one-to-one character mapping.\n * To support one-to-many character mapping use the [titlecase] function.\n * If this character has no mapping equivalent, the result of calling [uppercaseChar] is returned.\n *\n * @sample samples.text.Chars.titlecase\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.titlecaseChar(): Char = titlecaseCharImpl()\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/**\n * Returns the Unicode general category of this character.\n */\n@SinceKotlin(\"1.5\")\npublic actual val Char.category: CharCategory\n get() = CharCategory.valueOf(getCategoryValue())\n\n/**\n * Returns `true` if this character (Unicode code point) is defined in Unicode.\n *\n * A character is considered to be defined in Unicode if its [category] is not [CharCategory.UNASSIGNED].\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.isDefined(): Boolean {\n if (this < '\\u0080') {\n return true\n }\n return getCategoryValue() != CharCategory.UNASSIGNED.value\n}\n\n/**\n * Returns `true` if this character is a letter.\n *\n * A character is considered to be a letter if its [category] is [CharCategory.UPPERCASE_LETTER],\n * [CharCategory.LOWERCASE_LETTER], [CharCategory.TITLECASE_LETTER], [CharCategory.MODIFIER_LETTER], or [CharCategory.OTHER_LETTER].\n *\n * @sample samples.text.Chars.isLetter\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.isLetter(): Boolean {\n if (this in 'a'..'z' || this in 'A'..'Z') {\n return true\n }\n if (this < '\\u0080') {\n return false\n }\n return isLetterImpl()\n}\n\n/**\n * Returns `true` if this character is a letter or digit.\n *\n * @see isLetter\n * @see isDigit\n *\n * @sample samples.text.Chars.isLetterOrDigit\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.isLetterOrDigit(): Boolean {\n if (this in 'a'..'z' || this in 'A'..'Z' || this in '0'..'9') {\n return true\n }\n if (this < '\\u0080') {\n return false\n }\n\n return isDigitImpl() || isLetterImpl()\n}\n\n/**\n * Returns `true` if this character is a digit.\n *\n * A character is considered to be a digit if its [category] is [CharCategory.DECIMAL_DIGIT_NUMBER].\n *\n * @sample samples.text.Chars.isDigit\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.isDigit(): Boolean {\n if (this in '0'..'9') {\n return true\n }\n if (this < '\\u0080') {\n return false\n }\n return isDigitImpl()\n}\n\n/**\n * Returns `true` if this character is upper case.\n *\n * A character is considered to be an upper case character if its [category] is [CharCategory.UPPERCASE_LETTER],\n * or it has contributory property `Other_Uppercase` as defined by the Unicode Standard.\n *\n * @sample samples.text.Chars.isUpperCase\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.isUpperCase(): Boolean {\n if (this in 'A'..'Z') {\n return true\n }\n if (this < '\\u0080') {\n return false\n }\n return isUpperCaseImpl()\n}\n\n/**\n * Returns `true` if this character is lower case.\n *\n * A character is considered to be a lower case character if its [category] is [CharCategory.LOWERCASE_LETTER],\n * or it has contributory property `Other_Lowercase` as defined by the Unicode Standard.\n *\n * @sample samples.text.Chars.isLowerCase\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.isLowerCase(): Boolean {\n if (this in 'a'..'z') {\n return true\n }\n if (this < '\\u0080') {\n return false\n }\n return isLowerCaseImpl()\n}\n\n/**\n * Returns `true` if this character is a title case letter.\n *\n * A character is considered to be a title case letter if its [category] is [CharCategory.TITLECASE_LETTER].\n *\n * @sample samples.text.Chars.isTitleCase\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.isTitleCase(): Boolean {\n if (this < '\\u0080') {\n return false\n }\n return getCategoryValue() == CharCategory.TITLECASE_LETTER.value\n}\n\n/**\n * Returns `true` if this character is an ISO control character.\n *\n * A character is considered to be an ISO control character if its [category] is [CharCategory.CONTROL],\n * meaning the Char is in the range `'\\u0000'..'\\u001F'` or in the range `'\\u007F'..'\\u009F'`.\n *\n * @sample samples.text.Chars.isISOControl\n */\n@SinceKotlin(\"1.5\")\npublic actual fun Char.isISOControl(): Boolean {\n return this <= '\\u001F' || this in '\\u007F'..'\\u009F'\n}\n\n/**\n * Determines whether a character is whitespace according to the Unicode standard.\n * Returns `true` if the character is whitespace.\n *\n * @sample samples.text.Chars.isWhitespace\n */\npublic actual fun Char.isWhitespace(): Boolean = isWhitespaceImpl()","/*\n * Copyright 2010-2021 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\")\n@Deprecated(\"Use CharArray.concatToString() instead\", ReplaceWith(\"chars.concatToString()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.5\")\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\")\n@Deprecated(\"Use CharArray.concatToString(startIndex, endIndex) instead\", ReplaceWith(\"chars.concatToString(offset, offset + length)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.5\")\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.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\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.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\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.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\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.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\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.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\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.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\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.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\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.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\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@Deprecated(\"Use uppercase() instead.\", ReplaceWith(\"uppercase()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toUpperCase(): String = asDynamic().toUpperCase()\n\n/**\n * Returns a copy of this string converted to upper case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many and many-to-one character mapping,\n * thus the length of the returned string can be different from the length of the original string.\n *\n * @sample samples.text.Strings.uppercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic actual inline fun String.uppercase(): 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@Deprecated(\"Use lowercase() instead.\", ReplaceWith(\"lowercase()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toLowerCase(): String = asDynamic().toLowerCase()\n\n/**\n * Returns a copy of this string converted to lower case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many and many-to-one character mapping,\n * thus the length of the returned string can be different from the length of the original string.\n *\n * @sample samples.text.Strings.lowercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic actual inline fun String.lowercase(): 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\n@kotlin.js.JsPolyfill(\"\"\"\nif (typeof String.prototype.startsWith === \"undefined\") {\n Object.defineProperty(String.prototype, \"startsWith\", {\n value: function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n }\n });\n}\n\"\"\")\ninternal inline fun String.nativeStartsWith(s: String, position: Int): Boolean = asDynamic().startsWith(s, position)\n\n@kotlin.internal.InlineOnly\n@kotlin.js.JsPolyfill(\"\"\"\nif (typeof String.prototype.endsWith === \"undefined\") {\n Object.defineProperty(String.prototype, \"endsWith\", {\n value: 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}\n\"\"\")\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@Deprecated(\"Use String.plus() instead\", ReplaceWith(\"this + str\"))\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\n@kotlin.internal.InlineOnly\npublic inline fun String.concat(str: String): String = asDynamic().concat(str)\n\n@Deprecated(\"Use Regex.findAll() instead or invoke matches() on String dynamically: this.asDynamic().match(regex)\")\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\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/**\n * Compares two strings lexicographically, optionally ignoring case differences.\n *\n * If [ignoreCase] is true, the result of `Char.uppercaseChar().lowercaseChar()` on each character is compared.\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 for (index in 0 until min) {\n var thisChar = this[index]\n var otherChar = other[index]\n\n if (thisChar != otherChar) {\n thisChar = thisChar.uppercaseChar()\n otherChar = otherChar.uppercaseChar()\n\n if (thisChar != otherChar) {\n thisChar = thisChar.lowercaseChar()\n otherChar = otherChar.lowercaseChar()\n\n if (thisChar != otherChar) {\n return thisChar.compareTo(otherChar)\n }\n }\n }\n }\n return n1 - n2\n } else {\n return compareTo(other)\n }\n}\n\n/**\n * Returns `true` if the contents of this char sequence are equal to the contents of the specified [other],\n * i.e. both char sequences contain the same number of the same characters in the same order.\n *\n * @sample samples.text.Strings.contentEquals\n */\n@SinceKotlin(\"1.5\")\npublic actual infix fun CharSequence?.contentEquals(other: CharSequence?): Boolean = contentEqualsImpl(other)\n\n/**\n * Returns `true` if the contents of this char sequence are equal to the contents of the specified [other], optionally ignoring case difference.\n *\n * @param ignoreCase `true` to ignore character case when comparing contents.\n *\n * @sample samples.text.Strings.contentEquals\n */\n@SinceKotlin(\"1.5\")\npublic actual fun CharSequence?.contentEquals(other: CharSequence?, ignoreCase: Boolean): Boolean {\n return if (ignoreCase)\n this.contentEqualsIgnoreCaseImpl(other)\n else\n this.contentEqualsImpl(other)\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-2021 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 * Returns the numeric value of the decimal digit that this Char represents.\n * Throws an exception if this Char is not a valid decimal digit.\n *\n * A Char is considered to represent a decimal digit if [isDigit] is true for the Char.\n * In this case, the Unicode decimal digit value of the character is returned.\n *\n * @sample samples.text.Chars.digitToInt\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Char.digitToInt(): Int {\n return digitOf(this, 10).also {\n if (it < 0) throw IllegalArgumentException(\"Char $this is not a decimal digit\")\n }\n}\n\n/**\n * Returns the numeric value of the digit that this Char represents in the specified [radix].\n * Throws an exception if the [radix] is not in the range `2..36` or if this Char is not a valid digit in the specified [radix].\n *\n * A Char is considered to represent a digit in the specified [radix] if at least one of the following is true:\n * - [isDigit] is `true` for the Char and the Unicode decimal digit value of the character is less than the specified [radix]. In this case the decimal digit value is returned.\n * - The Char is one of the uppercase Latin letters 'A' through 'Z' and its [code] is less than `radix + 'A'.code - 10`. In this case, `this.code - 'A'.code + 10` is returned.\n * - The Char is one of the lowercase Latin letters 'a' through 'z' and its [code] is less than `radix + 'a'.code - 10`. In this case, `this.code - 'a'.code + 10` is returned.\n * - The Char is one of the fullwidth Latin capital letters '\\uFF21' through '\\uFF3A' and its [code] is less than `radix + 0xFF21 - 10`. In this case, `this.code - 0xFF21 + 10` is returned.\n * - The Char is one of the fullwidth Latin small letters '\\uFF41' through '\\uFF5A' and its [code] is less than `radix + 0xFF41 - 10`. In this case, `this.code - 0xFF41 + 10` is returned.\n *\n * @sample samples.text.Chars.digitToInt\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Char.digitToInt(radix: Int): Int {\n return digitToIntOrNull(radix) ?: throw IllegalArgumentException(\"Char $this is not a digit in the given radix=$radix\")\n}\n\n/**\n *\n * Returns the numeric value of the decimal digit that this Char represents, or `null` if this Char is not a valid decimal digit.\n *\n * A Char is considered to represent a decimal digit if [isDigit] is true for the Char.\n * In this case, the Unicode decimal digit value of the character is returned.\n *\n * @sample samples.text.Chars.digitToIntOrNull\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Char.digitToIntOrNull(): Int? {\n return digitOf(this, 10).takeIf { it >= 0 }\n}\n\n/**\n * Returns the numeric value of the digit that this Char represents in the specified [radix], or `null` if this Char is not a valid digit in the specified [radix].\n * Throws an exception if the [radix] is not in the range `2..36`.\n *\n * A Char is considered to represent a digit in the specified [radix] if at least one of the following is true:\n * - [isDigit] is `true` for the Char and the Unicode decimal digit value of the character is less than the specified [radix]. In this case the decimal digit value is returned.\n * - The Char is one of the uppercase Latin letters 'A' through 'Z' and its [code] is less than `radix + 'A'.code - 10`. In this case, `this.code - 'A'.code + 10` is returned.\n * - The Char is one of the lowercase Latin letters 'a' through 'z' and its [code] is less than `radix + 'a'.code - 10`. In this case, `this.code - 'a'.code + 10` is returned.\n * - The Char is one of the fullwidth Latin capital letters '\\uFF21' through '\\uFF3A' and its [code] is less than `radix + 0xFF21 - 10`. In this case, `this.code - 0xFF21 + 10` is returned.\n * - The Char is one of the fullwidth Latin small letters '\\uFF41' through '\\uFF5A' and its [code] is less than `radix + 0xFF41 - 10`. In this case, `this.code - 0xFF41 + 10` is returned.\n *\n * @sample samples.text.Chars.digitToIntOrNull\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Char.digitToIntOrNull(radix: Int): Int? {\n checkRadix(radix)\n return digitOf(this, radix).takeIf { it >= 0 }\n}\n\n/**\n * Returns the Char that represents this decimal digit.\n * Throws an exception if this value is not in the range `0..9`.\n *\n * If this value is in `0..9`, the decimal digit Char with code `'0'.code + this` is returned.\n *\n * @sample samples.text.Chars.digitToChar\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Int.digitToChar(): Char {\n if (this in 0..9) {\n return '0' + this\n }\n throw IllegalArgumentException(\"Int $this is not a decimal digit\")\n}\n\n/**\n * Returns the Char that represents this numeric digit value in the specified [radix].\n * Throws an exception if the [radix] is not in the range `2..36` or if this value is not in the range `0 until radix`.\n *\n * If this value is less than `10`, the decimal digit Char with code `'0'.code + this` is returned.\n * Otherwise, the uppercase Latin letter with code `'A'.code + this - 10` is returned.\n *\n * @sample samples.text.Chars.digitToChar\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Int.digitToChar(radix: Int): Char {\n if (radix !in 2..36) {\n throw IllegalArgumentException(\"Invalid radix: $radix. Valid radix values are in range 2..36\")\n }\n if (this < 0 || this >= radix) {\n throw IllegalArgumentException(\"Digit $this does not represent a valid digit in radix $radix\")\n }\n return if (this < 10) {\n '0' + this\n } else {\n 'A' + this - 10\n }\n}\n\n/**\n * Converts this character to lower case using Unicode mapping rules of the invariant locale.\n */\n@Deprecated(\"Use lowercaseChar() instead.\", ReplaceWith(\"lowercaseChar()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic expect fun Char.toLowerCase(): Char\n\n/**\n * Converts this character to lower case using Unicode mapping rules of the invariant locale.\n *\n * This function performs one-to-one character mapping.\n * To support one-to-many character mapping use the [lowercase] function.\n * If this character has no mapping equivalent, the character itself is returned.\n *\n * @sample samples.text.Chars.lowercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Char.lowercaseChar(): Char\n\n/**\n * Converts this character to lower case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one.\n * For example, `'\\u0130'.lowercase()` returns `\"\\u0069\\u0307\"`,\n * where `'\\u0130'` is the LATIN CAPITAL LETTER I WITH DOT ABOVE character (`\u0130`).\n * If this character has no lower case mapping, the result of `toString()` of this char is returned.\n *\n * @sample samples.text.Chars.lowercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Char.lowercase(): String\n\n/**\n * Converts this character to upper case using Unicode mapping rules of the invariant locale.\n */\n@Deprecated(\"Use uppercaseChar() instead.\", ReplaceWith(\"uppercaseChar()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic expect fun Char.toUpperCase(): Char\n\n/**\n * Converts this character to upper case using Unicode mapping rules of the invariant locale.\n *\n * This function performs one-to-one character mapping.\n * To support one-to-many character mapping use the [uppercase] function.\n * If this character has no mapping equivalent, the character itself is returned.\n *\n * @sample samples.text.Chars.uppercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Char.uppercaseChar(): Char\n\n/**\n * Converts this character to upper case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one.\n * For example, `'\\uFB00'.uppercase()` returns `\"\\u0046\\u0046\"`,\n * where `'\\uFB00'` is the LATIN SMALL LIGATURE FF character (`\ufb00`).\n * If this character has no upper case mapping, the result of `toString()` of this char is returned.\n *\n * @sample samples.text.Chars.uppercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Char.uppercase(): String\n\n/**\n * Converts this character to title case using Unicode mapping rules of the invariant locale.\n *\n * This function performs one-to-one character mapping.\n * To support one-to-many character mapping use the [titlecase] function.\n * If this character has no mapping equivalent, the result of calling [uppercaseChar] is returned.\n *\n * @sample samples.text.Chars.titlecase\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.titlecaseChar(): Char\n\n/**\n * Converts this character to title case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one.\n * For example, `'\\uFB00'.titlecase()` returns `\"\\u0046\\u0066\"`,\n * where `'\\uFB00'` is the LATIN SMALL LIGATURE FF character (`\ufb00`).\n * If this character has no title case mapping, the result of [uppercase] is returned instead.\n *\n * @sample samples.text.Chars.titlecase\n */\n@SinceKotlin(\"1.5\")\npublic fun Char.titlecase(): String = titlecaseImpl()\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 * Two characters are considered equal ignoring case if `Char.uppercaseChar().lowercaseChar()` on each character produces the same result.\n *\n * @param ignoreCase `true` to ignore character case when comparing characters. By default `false`.\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 val thisUpper = this.uppercaseChar()\n val otherUpper = other.uppercaseChar()\n\n return thisUpper == otherUpper || thisUpper.lowercaseChar() == otherUpper.lowercaseChar()\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/**\n * Returns the Unicode general category of this character.\n */\n@SinceKotlin(\"1.5\")\npublic expect val Char.category: CharCategory\n\n/**\n * Returns `true` if this character (Unicode code point) is defined in Unicode.\n *\n * A character is considered to be defined in Unicode if its [category] is not [CharCategory.UNASSIGNED].\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.isDefined(): Boolean\n\n/**\n * Returns `true` if this character is a letter.\n *\n * A character is considered to be a letter if its [category] is [CharCategory.UPPERCASE_LETTER],\n * [CharCategory.LOWERCASE_LETTER], [CharCategory.TITLECASE_LETTER], [CharCategory.MODIFIER_LETTER], or [CharCategory.OTHER_LETTER].\n *\n * @sample samples.text.Chars.isLetter\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.isLetter(): Boolean\n\n/**\n * Returns `true` if this character is a letter or digit.\n *\n * @see isLetter\n * @see isDigit\n *\n * @sample samples.text.Chars.isLetterOrDigit\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.isLetterOrDigit(): Boolean\n\n/**\n * Returns `true` if this character is a digit.\n *\n * A character is considered to be a digit if its [category] is [CharCategory.DECIMAL_DIGIT_NUMBER].\n *\n * @sample samples.text.Chars.isDigit\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.isDigit(): Boolean\n\n/**\n * Returns `true` if this character is upper case.\n *\n * A character is considered to be an upper case character if its [category] is [CharCategory.UPPERCASE_LETTER],\n * or it has contributory property `Other_Uppercase` as defined by the Unicode Standard.\n *\n * @sample samples.text.Chars.isUpperCase\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.isUpperCase(): Boolean\n\n/**\n * Returns `true` if this character is lower case.\n *\n * A character is considered to be a lower case character if its [category] is [CharCategory.LOWERCASE_LETTER],\n * or it has contributory property `Other_Lowercase` as defined by the Unicode Standard.\n *\n * @sample samples.text.Chars.isLowerCase\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.isLowerCase(): Boolean\n\n/**\n * Returns `true` if this character is a title case letter.\n *\n * A character is considered to be a title case letter if its [category] is [CharCategory.TITLECASE_LETTER].\n *\n * @sample samples.text.Chars.isTitleCase\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.isTitleCase(): Boolean\n\n/**\n * Returns `true` if this character is an ISO control character.\n *\n * A character is considered to be an ISO control character if its [category] is [CharCategory.CONTROL],\n * meaning the Char is in the range `'\\u0000'..'\\u001F'` or in the range `'\\u007F'..'\\u009F'`.\n *\n * @sample samples.text.Chars.isISOControl\n */\n@SinceKotlin(\"1.5\")\npublic expect fun Char.isISOControl(): Boolean\n\n/**\n * Determines whether a character is whitespace according to the Unicode standard.\n * Returns `true` if the character is whitespace.\n *\n * @sample samples.text.Chars.isWhitespace\n */\npublic expect fun Char.isWhitespace(): Boolean\n","/*\n * Copyright 2010-2021 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/**\n * Creates a Char with the specified [code], or throws an exception if the [code] is out of `Char.MIN_VALUE.code..Char.MAX_VALUE.code`.\n *\n * If the program that calls this function is written in a way that only valid [code] is passed as the argument,\n * using the overload that takes a [UShort] argument is preferable (`Char(intValue.toUShort())`).\n * That overload doesn't check validity of the argument, and may improve program performance when the function is called routinely inside a loop.\n *\n * @sample samples.text.Chars.charFromCode\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Char(code: Int): Char {\n if (code < Char.MIN_VALUE.code || code > Char.MAX_VALUE.code) {\n throw IllegalArgumentException(\"Invalid Char code: $code\")\n }\n return code.toChar()\n}\n\n/**\n * Creates a Char with the specified [code].\n *\n * @sample samples.text.Chars.charFromCode\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Char(code: UShort): Char\n\n/**\n * Returns the code of this Char.\n *\n * Code of a Char is the value it was constructed with, and the UTF-16 code unit corresponding to this Char.\n *\n * @sample samples.text.Chars.code\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline val Char.code: Int get() = this.toInt()\n","/*\n * Copyright 2010-2023 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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the first element.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\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 non-null value produced by [transform] function being applied to elements of this sequence in iteration order,\n * or throws [NoSuchElementException] if no non-null value was produced.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.firstNotNullOf(transform: (T) -> R?): R {\n return firstNotNullOfOrNull(transform) ?: throw NoSuchElementException(\"No element of the sequence was transformed to a non-null value.\")\n}\n\n/**\n * Returns the first non-null value produced by [transform] function being applied to elements of this sequence in iteration order,\n * or `null` if no non-null value was produced.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.firstNotNullOfOrNull(transform: (T) -> R?): R? {\n for (element in this) {\n val result = transform(element)\n if (result != null) {\n return result\n }\n }\n return null\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 *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.collections.Collections.Filtering.filterIsInstance\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 * \n * @sample samples.collections.Collections.Filtering.filterIsInstanceTo\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 * \n * @sample samples.collections.Collections.Filtering.filter\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 * \n * @sample samples.collections.Collections.Filtering.filterNotNull\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 * \n * @sample samples.collections.Collections.Filtering.filterNotNullTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Sorting.sortedBy\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 * \n * @sample samples.collections.Collections.Transformations.associate\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 * \n * @sample samples.collections.Collections.Transformations.associateBy\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 * \n * @sample samples.collections.Collections.Transformations.associateByWithValueTransform\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 * \n * @sample samples.collections.Collections.Transformations.associateByTo\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 * \n * @sample samples.collections.Collections.Transformations.associateByToWithValueTransform\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 * \n * @sample samples.collections.Collections.Transformations.associateTo\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 * @sample samples.collections.Collections.Transformations.associateWithTo\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 new [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 val it = iterator()\n if (!it.hasNext())\n return emptyList()\n val element = it.next()\n if (!it.hasNext())\n return listOf(element)\n val dst = ArrayList()\n dst.add(element)\n while (it.hasNext()) dst.add(it.next())\n return dst\n}\n\n/**\n * Returns a new [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 val it = iterator()\n if (!it.hasNext())\n return emptySet()\n val element = it.next()\n if (!it.hasNext())\n return setOf(element)\n val dst = LinkedHashSet()\n dst.add(element)\n while (it.hasNext()) dst.add(it.next())\n return dst\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIterable\")\npublic fun Sequence.flatMap(transform: (T) -> Iterable): Sequence {\n return FlatteningSequence(this, transform, Iterable::iterator)\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic fun Sequence.flatMap(transform: (T) -> Sequence): Sequence {\n return FlatteningSequence(this, transform, Sequence::iterator)\n}\n\n/**\n * Returns a single sequence of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original sequence.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\npublic fun Sequence.flatMapIndexed(transform: (index: Int, T) -> Iterable): Sequence {\n return flatMapIndexed(this, transform, Iterable::iterator)\n}\n\n/**\n * Returns a single sequence of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original sequence.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequence\")\npublic fun Sequence.flatMapIndexed(transform: (index: Int, T) -> Sequence): Sequence {\n return flatMapIndexed(this, transform, Sequence::iterator)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original sequence, to the given [destination].\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Sequence.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(checkIndexOverflow(index++), 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\n * and its index in the original sequence, to the given [destination].\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequenceTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Sequence.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Sequence): C {\n var index = 0\n for (element in this) {\n val list = transform(checkIndexOverflow(index++), 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 sequence, to the given [destination].\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIterableTo\")\npublic inline fun > Sequence.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 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 * \n * @sample samples.collections.Collections.Transformations.mapNotNull\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 that wraps each element of the original sequence\n * into an [IndexedValue] containing the index of that element and the element itself.\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 * Among equal elements of the given sequence, only the first one will be present in the resulting sequence.\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\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 * Among elements of the given sequence with equal keys, only the first one will be present in the resulting sequence.\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 * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun Sequence.distinctBy(selector: (T) -> K): Sequence {\n return DistinctSequence(this, selector)\n}\n\n/**\n * Returns a new [MutableSet] 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 * Note that if the sequence contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the sequence is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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 * \n * Returns the specified [initial] value if the sequence is empty.\n * \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 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.\n * \n * If any of elements is `NaN` returns `NaN`.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Sequence.max(): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Sequence.max(): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun > Sequence.max(): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Sequence.maxBy(selector: (T) -> R): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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 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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Sequence.maxByOrNull(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 largest value among all values produced by [selector] function\n * applied to each element in the sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.maxOf(selector: (T) -> Double): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.maxOf(selector: (T) -> Float): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the sequence.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Sequence.maxOf(selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the sequence or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.maxOfOrNull(selector: (T) -> Double): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the sequence or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.maxOfOrNull(selector: (T) -> Float): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the sequence or `null` if there are no elements.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Sequence.maxOfOrNull(selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the sequence.\n * \n * @throws NoSuchElementException if the sequence is empty.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.maxOfWith(comparator: Comparator, selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the sequence or `null` if there are no elements.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.maxOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\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.4\")\npublic fun Sequence.maxOrNull(): Double? {\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 max = maxOf(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.4\")\npublic fun Sequence.maxOrNull(): Float? {\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 max = maxOf(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 */\n@SinceKotlin(\"1.4\")\npublic fun > Sequence.maxOrNull(): 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 having the largest value according to the provided [comparator].\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Sequence.maxWith(comparator: Comparator): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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 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 */\n@SinceKotlin(\"1.4\")\npublic fun Sequence.maxWithOrNull(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.\n * \n * If any of elements is `NaN` returns `NaN`.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Sequence.min(): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Sequence.min(): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun > Sequence.min(): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Sequence.minBy(selector: (T) -> R): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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 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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Sequence.minByOrNull(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 smallest value among all values produced by [selector] function\n * applied to each element in the sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.minOf(selector: (T) -> Double): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.minOf(selector: (T) -> Float): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the sequence.\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Sequence.minOf(selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the sequence or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.minOfOrNull(selector: (T) -> Double): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the sequence or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.minOfOrNull(selector: (T) -> Float): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the sequence or `null` if there are no elements.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Sequence.minOfOrNull(selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the sequence.\n * \n * @throws NoSuchElementException if the sequence is empty.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.minOfWith(comparator: Comparator, selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the sequence or `null` if there are no elements.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.minOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\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.4\")\npublic fun Sequence.minOrNull(): Double? {\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 min = minOf(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.4\")\npublic fun Sequence.minOrNull(): Float? {\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 min = minOf(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 */\n@SinceKotlin(\"1.4\")\npublic fun > Sequence.minOrNull(): 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 having the smallest value according to the provided [comparator].\n *\n * The operation is _terminal_.\n * \n * @throws NoSuchElementException if the sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Sequence.minWith(comparator: Comparator): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\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 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 */\n@SinceKotlin(\"1.4\")\npublic fun Sequence.minWithOrNull(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 * Returns a sequence which performs the given [action] on each element of the original sequence as they pass through it.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n *\n * The operation is _intermediate_ and _stateless_.\n */\n@SinceKotlin(\"1.4\")\npublic fun Sequence.onEachIndexed(action: (index: Int, T) -> Unit): Sequence {\n return mapIndexed { index, element ->\n action(index, element)\n element\n }\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.\n * \n * Throws an exception if this sequence is empty. If the sequence can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this sequence is empty. If the sequence can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * 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 * \n * Returns `null` if the sequence is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Sequence.reduceIndexedOrNull(operation: (index: Int, acc: S, T) -> S): S? {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return null\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 the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the sequence is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Sequence.reduceOrNull(operation: (acc: S, T) -> S): S? {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return null\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Returns a sequence containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting sequence.\n * The [initial] value should also be immutable (or should not be mutated)\n * as it may be passed to [operation] function later because of sequence's lazy nature.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic fun Sequence.runningFold(initial: R, operation: (acc: R, T) -> R): Sequence {\n return sequence {\n yield(initial)\n var accumulator = initial\n for (element in this@runningFold) {\n accumulator = operation(accumulator, element)\n yield(accumulator)\n }\n }\n}\n\n/**\n * Returns a sequence containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original sequence and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting sequence.\n * The [initial] value should also be immutable (or should not be mutated)\n * as it may be passed to [operation] function later because of sequence's lazy nature.\n * \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 _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic fun Sequence.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): Sequence {\n return sequence {\n yield(initial)\n var index = 0\n var accumulator = initial\n for (element in this@runningFoldIndexed) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, element)\n yield(accumulator)\n }\n }\n}\n\n/**\n * Returns a sequence containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this sequence.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting sequence.\n * \n * @param [operation] function that takes current accumulator value and the element, and calculates the next accumulator value.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Sequence.runningReduce(operation: (acc: S, T) -> S): Sequence {\n return sequence {\n val iterator = iterator()\n if (iterator.hasNext()) {\n var accumulator: S = iterator.next()\n yield(accumulator)\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n yield(accumulator)\n }\n }\n }\n}\n\n/**\n * Returns a sequence containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original sequence and current accumulator value that starts with the first element of this sequence.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting sequence.\n * \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 _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic fun Sequence.runningReduceIndexed(operation: (index: Int, acc: S, T) -> S): Sequence {\n return sequence {\n val iterator = iterator()\n if (iterator.hasNext()) {\n var accumulator: S = iterator.next()\n yield(accumulator)\n var index = 1\n while (iterator.hasNext()) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, iterator.next())\n yield(accumulator)\n }\n }\n }\n}\n\n/**\n * Returns a sequence containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting sequence.\n * The [initial] value should also be immutable (or should not be mutated)\n * as it may be passed to [operation] function later because of sequence's lazy nature.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Sequence.scan(initial: R, operation: (acc: R, T) -> R): Sequence {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a sequence containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original sequence and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting sequence.\n * The [initial] value should also be immutable (or should not be mutated)\n * as it may be passed to [operation] function later because of sequence's lazy nature.\n * \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 _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Sequence.scanIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): Sequence {\n return runningFoldIndexed(initial, operation)\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 the sum of all values produced by [selector] function applied to each element in the sequence.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.sumOf(selector: (T) -> Double): Double {\n var sum: Double = 0.toDouble()\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 */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.sumOf(selector: (T) -> Int): Int {\n var sum: Int = 0.toInt()\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 */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.sumOf(selector: (T) -> Long): Long {\n var sum: Long = 0.toLong()\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 */\n@SinceKotlin(\"1.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.sumOf(selector: (T) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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 */\n@SinceKotlin(\"1.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.sumOf(selector: (T) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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 fewer 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 fewer 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 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 return this@minus.filterNot { it in elements }.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 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.convertToListIfNotCollection()\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 */\npublic operator fun Sequence.minus(elements: Sequence): Sequence {\n return object: Sequence {\n override fun iterator(): Iterator {\n val other = elements.toList()\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 * \n * @sample samples.collections.Sequences.Transformations.partition\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 fewer 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 fewer 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","/*\n * Copyright 2010-2023 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 */\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 */\npublic operator fun Set.minus(elements: Iterable): Set {\n val other = elements.convertToListIfNotCollection()\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 */\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-2023 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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.findLast(predicate: (Char) -> Boolean): Char? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the first character.\n * \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 non-null value produced by [transform] function being applied to characters of this char sequence in iteration order,\n * or throws [NoSuchElementException] if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.firstNotNullOf(transform: (Char) -> R?): R {\n return firstNotNullOfOrNull(transform) ?: throw NoSuchElementException(\"No element of the char sequence was transformed to a non-null value.\")\n}\n\n/**\n * Returns the first non-null value produced by [transform] function being applied to characters of this char sequence in iteration order,\n * or `null` if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.firstNotNullOfOrNull(transform: (Char) -> R?): R? {\n for (element in this) {\n val result = transform(element)\n if (result != null) {\n return result\n }\n }\n return null\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 * \n * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @throws NoSuchElementException if the char sequence is empty.\n * \n * @sample samples.text.Strings.last\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 * \n * @throws NoSuchElementException if no such character is found.\n * \n * @sample samples.text.Strings.last\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 * \n * @sample samples.text.Strings.last\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 * \n * @sample samples.text.Strings.last\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 a random character from this char sequence, or `null` if this char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.randomOrNull(): Char? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random character from this char sequence using the specified source of randomness, or `null` if this char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun CharSequence.randomOrNull(random: Random): Char? {\n if (isEmpty())\n return null\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 * \n * @sample samples.text.Strings.filter\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 * \n * @sample samples.text.Strings.filter\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexed\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 * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * \n * @sample samples.text.Strings.filterNot\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 * \n * @sample samples.text.Strings.filterNot\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.collections.Collections.Filtering.filterTo\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 * \n * @sample samples.text.Strings.associate\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 * \n * @sample samples.text.Strings.associateBy\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 * \n * @sample samples.text.Strings.associateByWithValueTransform\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 * \n * @sample samples.text.Strings.associateByTo\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 * \n * @sample samples.text.Strings.associateByToWithValueTransform\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 * \n * @sample samples.text.Strings.associateTo\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.coerceAtMost(128)).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 * @sample samples.text.Strings.associateWithTo\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 new [HashSet] of all characters.\n */\npublic fun CharSequence.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(length.coerceAtMost(128))))\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 new [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.coerceAtMost(128))))\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 * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun CharSequence.flatMap(transform: (Char) -> 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 character\n * and its index in the original char sequence.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.flatMapIndexed(transform: (index: Int, Char) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each character\n * and its index in the original char sequence, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.flatMapIndexedTo(destination: C, transform: (index: Int, Char) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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 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 * \n * @sample samples.collections.Collections.Transformations.mapNotNull\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] that wraps each character of the original char sequence\n * into an [IndexedValue] containing the index of that character and the character itself.\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 * Note that if the char sequence contains no characters, the function returns `true`\n * because there are no characters in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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\n * to current accumulator value and each character.\n * \n * Returns the specified [initial] value if the char sequence is empty.\n * \n * @param [operation] function that takes current accumulator value and a character, and calculates the next accumulator value.\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 * \n * Returns the specified [initial] value if the char sequence is empty.\n * \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\n * to each character and current accumulator value.\n * \n * Returns the specified [initial] value if the char sequence is empty.\n * \n * @param [operation] function that takes a character and current accumulator value, and calculates the next 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 * \n * Returns the specified [initial] value if the char sequence is empty.\n * \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 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.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun CharSequence.max(): Char {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > CharSequence.maxBy(selector: (Char) -> R): Char {\n if (isEmpty()) throw NoSuchElementException()\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 yielding the largest value of the given function or `null` if there are no characters.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > CharSequence.maxByOrNull(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 largest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOf(selector: (Char) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOf(selector: (Char) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.maxOf(selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOfOrNull(selector: (Char) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOfOrNull(selector: (Char) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.maxOfOrNull(selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each character in the char sequence.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOfWith(comparator: Comparator, selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each character in the char sequence or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.maxOfWithOrNull(comparator: Comparator, selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest character or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharSequence.maxOrNull(): 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 having the largest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun CharSequence.maxWith(comparator: Comparator): Char {\n if (isEmpty()) throw NoSuchElementException()\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 character having the largest value according to the provided [comparator] or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharSequence.maxWithOrNull(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.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun CharSequence.min(): Char {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > CharSequence.minBy(selector: (Char) -> R): Char {\n if (isEmpty()) throw NoSuchElementException()\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 yielding the smallest value of the given function or `null` if there are no characters.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > CharSequence.minByOrNull(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 smallest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOf(selector: (Char) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOf(selector: (Char) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.minOf(selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOfOrNull(selector: (Char) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOfOrNull(selector: (Char) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each character in the char sequence or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > CharSequence.minOfOrNull(selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each character in the char sequence.\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOfWith(comparator: Comparator, selector: (Char) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each character in the char sequence or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.minOfWithOrNull(comparator: Comparator, selector: (Char) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest character or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharSequence.minOrNull(): 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 having the smallest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the char sequence is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun CharSequence.minWith(comparator: Comparator): Char {\n if (isEmpty()) throw NoSuchElementException()\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 character having the smallest value according to the provided [comparator] or `null` if there are no characters.\n */\n@SinceKotlin(\"1.4\")\npublic fun CharSequence.minWithOrNull(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 * Performs the given [action] on each character, providing sequential index with the character,\n * and returns the char sequence itself afterwards.\n * @param [action] function that takes the index of a character and the character itself\n * and performs the action on the character.\n */\n@SinceKotlin(\"1.4\")\npublic inline fun S.onEachIndexed(action: (index: Int, Char) -> Unit): S {\n return apply { forEachIndexed(action) }\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.\n * \n * Throws an exception if this char sequence is empty. If the char sequence can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and a character,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this char sequence is empty. If the char sequence can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of a character, current accumulator value and the character itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 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 * \n * Returns `null` if the char sequence is empty.\n * \n * @param [operation] function that takes the index of a character, current accumulator value and the character itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.reduceIndexedOrNull(operation: (index: Int, acc: Char, Char) -> Char): Char? {\n if (isEmpty())\n return null\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 character and applying [operation] from left to right\n * to current accumulator value and each character.\n * \n * Returns `null` if the char sequence is empty.\n * \n * @param [operation] function that takes current accumulator value and a character,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharSequence.reduceOrNull(operation: (acc: Char, Char) -> Char): Char? {\n if (isEmpty())\n return null\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 last character and applying [operation] from right to left\n * to each character and current accumulator value.\n * \n * Throws an exception if this char sequence is empty. If the char sequence can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes a character and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this char sequence is empty. If the char sequence can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of a character, the character itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 * Accumulates value starting with the 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 * \n * Returns `null` if the char sequence is empty.\n * \n * @param [operation] function that takes the index of a character, the character itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.reduceRightIndexedOrNull(operation: (index: Int, Char, acc: Char) -> Char): Char? {\n var index = lastIndex\n if (index < 0) return null\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 the last character and applying [operation] from right to left\n * to each character and current accumulator value.\n * \n * Returns `null` if the char sequence is empty.\n * \n * @param [operation] function that takes a character and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharSequence.reduceRightOrNull(operation: (Char, acc: Char) -> Char): Char? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and a character, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.runningFold(initial: R, operation: (acc: R, Char) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(length + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character, its index in the original char sequence and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(length + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character and current accumulator value that starts with the first character of this char sequence.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and a character, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.runningReduce(operation: (acc: Char, Char) -> Char): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(length).apply { add(accumulator) }\n for (index in 1 until length) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character, its index in the original char sequence and current accumulator value that starts with the first character of this char sequence.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun CharSequence.runningReduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(length).apply { add(accumulator) }\n for (index in 1 until length) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and a character, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharSequence.scan(initial: R, operation: (acc: R, Char) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each character, its index in the original char sequence and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun CharSequence.scanIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> Double): Double {\n var sum: Double = 0.toDouble()\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 */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> Int): Int {\n var sum: Int = 0.toInt()\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 */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> Long): Long {\n var sum: Long = 0.toLong()\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 */\n@SinceKotlin(\"1.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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 */\n@SinceKotlin(\"1.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.sumOf(selector: (Char) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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 fewer 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.text.Strings.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 fewer 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 fewer 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 fewer 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 * \n * @sample samples.text.Strings.partition\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 * \n * @sample samples.text.Strings.partition\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 fewer 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 fewer 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 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 end = index + size\n val coercedEnd = if (end < 0 || 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 fewer 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 fewer 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 ->\n val end = index + size\n val coercedEnd = if (end < 0 || end > length) length else end\n transform(subSequence(index, coercedEnd))\n }\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-2021 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\nimport kotlin.jvm.JvmName\n\n/**\n * Returns a copy of this string converted to upper case using the rules of the default locale.\n */\n@Deprecated(\"Use uppercase() instead.\", ReplaceWith(\"uppercase()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic expect fun String.toUpperCase(): String\n\n/**\n * Returns a copy of this string converted to upper case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many and many-to-one character mapping,\n * thus the length of the returned string can be different from the length of the original string.\n *\n * @sample samples.text.Strings.uppercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun String.uppercase(): String\n\n/**\n * Returns a copy of this string converted to lower case using the rules of the default locale.\n */\n@Deprecated(\"Use lowercase() instead.\", ReplaceWith(\"lowercase()\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic expect fun String.toLowerCase(): String\n\n/**\n * Returns a copy of this string converted to lower case using Unicode mapping rules of the invariant locale.\n *\n * This function supports one-to-many and many-to-one character mapping,\n * thus the length of the returned string can be different from the length of the original string.\n *\n * @sample samples.text.Strings.lowercase\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun String.lowercase(): String\n\n/**\n * Returns a copy of this string having its first letter titlecased using the rules of the default locale,\n * or the original string if it's empty or already starts with a title case letter.\n *\n * The title case of a character is usually the same as its upper case with several exceptions.\n * The particular list of characters with the special title case form depends on the underlying platform.\n *\n * @sample samples.text.Strings.capitalize\n */\n@Deprecated(\"Use replaceFirstChar instead.\", ReplaceWith(\"replaceFirstChar { if (it.isLowerCase()) it.titlecase() else it.toString() }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic expect fun String.capitalize(): String\n\n/**\n * Returns a copy of this string having its first letter lowercased using the rules of the default locale,\n * or the original string if it's empty or already starts with a lower case letter.\n *\n * @sample samples.text.Strings.decapitalize\n */\n@Deprecated(\"Use replaceFirstChar instead.\", ReplaceWith(\"replaceFirstChar { it.lowercase() }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic expect fun String.decapitalize(): String\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.appendRange(this, 0, startIndex)\n sb.append(replacement)\n sb.appendRange(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.appendRange(this, 0, startIndex)\n sb.appendRange(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 * Returns a copy of this string having its first character replaced with the result of the specified [transform],\n * or the original string if it's empty.\n *\n * @param transform function that takes the first character and returns the result of the transform applied to the character.\n *\n * @sample samples.text.Strings.replaceFirstChar\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@JvmName(\"replaceFirstCharWithChar\")\n@kotlin.internal.InlineOnly\npublic inline fun String.replaceFirstChar(transform: (Char) -> Char): String {\n return if (isNotEmpty()) transform(this[0]) + substring(1) else this\n}\n\n/**\n * Returns a copy of this string having its first character replaced with the result of the specified [transform],\n * or the original string if it's empty.\n *\n * @param transform function that takes the first character and returns the result of the transform applied to the character.\n *\n * @sample samples.text.Strings.replaceFirstChar\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@JvmName(\"replaceFirstCharWithCharSequence\")\n@kotlin.internal.InlineOnly\npublic inline fun String.replaceFirstChar(transform: (Char) -> CharSequence): String {\n return if (isNotEmpty()) transform(this[0]).toString() + substring(1) else this\n}\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 * @sample samples.text.Strings.indexOf\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 last 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 last 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 requireNonNegativeLimit(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 requireNonNegativeLimit(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\ninternal fun requireNonNegativeLimit(limit: Int) =\n require(limit >= 0) { \"Limit must be non-negative, but was $limit\" }\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 requireNonNegativeLimit(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 to a list of strings 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 strings 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 * @sample samples.text.Strings.splitToSequence\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.splitToSequence(regex: Regex, limit: Int = 0): Sequence = regex.splitToSequence(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/**\n * Returns `true` if the contents of this char sequence are equal to the contents of the specified [other],\n * i.e. both char sequences contain the same number of the same characters in the same order.\n *\n * @sample samples.text.Strings.contentEquals\n */\n@SinceKotlin(\"1.5\")\npublic expect infix fun CharSequence?.contentEquals(other: CharSequence?): Boolean\n\n/**\n * Returns `true` if the contents of this char sequence are equal to the contents of the specified [other], optionally ignoring case difference.\n *\n * @param ignoreCase `true` to ignore character case when comparing contents.\n *\n * @sample samples.text.Strings.contentEquals\n */\n@SinceKotlin(\"1.5\")\npublic expect fun CharSequence?.contentEquals(other: CharSequence?, ignoreCase: Boolean): Boolean\n\ninternal fun CharSequence?.contentEqualsIgnoreCaseImpl(other: CharSequence?): Boolean {\n if (this is String && other is String) {\n return this.equals(other, ignoreCase = true)\n }\n\n if (this === other) return true\n if (this == null || other == null || this.length != other.length) return false\n\n for (i in 0 until length) {\n if (!this[i].equals(other[i], ignoreCase = true)) {\n return false\n }\n }\n\n return true\n}\n\ninternal fun CharSequence?.contentEqualsImpl(other: CharSequence?): Boolean {\n if (this is String && other is String) {\n return this == other\n }\n\n if (this === other) return true\n if (this == null || other == null || this.length != other.length) return false\n\n for (i in 0 until length) {\n if (this[i] != other[i]) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Returns `true` if the content of this string is equal to the word \"true\", `false` if it is equal to \"false\",\n * and throws an exception otherwise.\n *\n * There is also a lenient version of the function available on nullable String, [String?.toBoolean].\n * Note that this function is case-sensitive.\n *\n * @sample samples.text.Strings.toBooleanStrict\n */\n@SinceKotlin(\"1.5\")\npublic fun String.toBooleanStrict(): Boolean = when (this) {\n \"true\" -> true\n \"false\" -> false\n else -> throw IllegalArgumentException(\"The string doesn't represent a boolean value: $this\")\n}\n\n/**\n * Returns `true` if the content of this string is equal to the word \"true\", `false` if it is equal to \"false\",\n * and `null` otherwise.\n *\n * There is also a lenient version of the function available on nullable String, [String?.toBoolean].\n * Note that this function is case-sensitive.\n *\n * @sample samples.text.Strings.toBooleanStrictOrNull\n */\n@SinceKotlin(\"1.5\")\npublic fun String.toBooleanStrictOrNull(): Boolean? = when (this) {\n \"true\" -> true\n \"false\" -> false\n else -> null\n}","/*\n * Copyright 2010-2023 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.jvm.*\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@JvmInline\npublic value class UByteArray\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(): kotlin.collections.Iterator = Iterator(storage)\n\n private class Iterator(private val array: ByteArray) : kotlin.collections.Iterator {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun next() = 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 @Suppress(\"USELESS_CAST\")\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","/*\n * Copyright 2010-2023 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.jvm.*\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@JvmInline\npublic value class UIntArray\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(): kotlin.collections.Iterator = Iterator(storage)\n\n private class Iterator(private val array: IntArray) : kotlin.collections.Iterator {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun next() = 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 @Suppress(\"USELESS_CAST\")\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/**\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 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-2023 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.jvm.*\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@JvmInline\npublic value class ULongArray\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(): kotlin.collections.Iterator = Iterator(storage)\n\n private class Iterator(private val array: LongArray) : kotlin.collections.Iterator {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun next() = 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 @Suppress(\"USELESS_CAST\")\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/**\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 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-2023 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.jvm.*\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@JvmInline\npublic value class UShortArray\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(): kotlin.collections.Iterator = Iterator(storage)\n\n private class Iterator(private val array: ShortArray) : kotlin.collections.Iterator {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun next() = 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 @Suppress(\"USELESS_CAST\")\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/**\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 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-2023 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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 1, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 2, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 3, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 4, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 array.\n * \n * If the size of this array is less than 5, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 * @sample samples.collections.Collections.Elements.find\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 the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 the first element.\n * \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 * @sample samples.collections.Collections.Elements.getOrNull\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 * @sample samples.collections.Collections.Elements.getOrNull\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 * @sample samples.collections.Collections.Elements.getOrNull\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 * @sample samples.collections.Collections.Elements.getOrNull\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\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 * @sample samples.collections.Collections.Elements.last\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 * @sample samples.collections.Collections.Elements.last\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 * @sample samples.collections.Collections.Elements.last\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 * @sample samples.collections.Collections.Elements.last\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 * @sample samples.collections.Collections.Elements.last\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 * @sample samples.collections.Collections.Elements.last\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 * @sample samples.collections.Collections.Elements.last\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 * @sample samples.collections.Collections.Elements.last\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 a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.randomOrNull(): UInt? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.randomOrNull(): ULong? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.randomOrNull(): UByte? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.randomOrNull(): UShort? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun UIntArray.randomOrNull(random: Random): UInt? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun ULongArray.randomOrNull(random: Random): ULong? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun UByteArray.randomOrNull(random: Random): UByte? {\n if (isEmpty())\n return null\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness, or `null` if this array is empty.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun UShortArray.randomOrNull(random: Random): UShort? {\n if (isEmpty())\n return null\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 * @sample samples.collections.Collections.Filtering.filter\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 * @sample samples.collections.Collections.Filtering.filter\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 * @sample samples.collections.Collections.Filtering.filter\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 * @sample samples.collections.Collections.Filtering.filter\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 * @sample samples.collections.Collections.Filtering.filterIndexed\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 * @sample samples.collections.Collections.Filtering.filterIndexed\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 * @sample samples.collections.Collections.Filtering.filterIndexed\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 * @sample samples.collections.Collections.Filtering.filterIndexed\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 * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * @sample samples.collections.Collections.Filtering.filterIndexedTo\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 * @sample samples.collections.Collections.Filtering.filter\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 * @sample samples.collections.Collections.Filtering.filter\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 * @sample samples.collections.Collections.Filtering.filter\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 * @sample samples.collections.Collections.Filtering.filter\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 * @sample samples.collections.Collections.Filtering.filterTo\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 * @sample samples.collections.Collections.Filtering.filterTo\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 * @sample samples.collections.Collections.Filtering.filterTo\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 * @sample samples.collections.Collections.Filtering.filterTo\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 * @sample samples.collections.Collections.Filtering.filterTo\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 * @sample samples.collections.Collections.Filtering.filterTo\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 * @sample samples.collections.Collections.Filtering.filterTo\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 * @sample samples.collections.Collections.Filtering.filterTo\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 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 */\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 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 */\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 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 */\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 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 */\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 * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n storage.reverse(fromIndex, toIndex)\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n storage.reverse(fromIndex, toIndex)\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n storage.reverse(fromIndex, toIndex)\n}\n\n/**\n * Reverses elements of the array in the specified range in-place.\n * \n * @param fromIndex the start of the range (inclusive) to reverse.\n * @param toIndex the end of the range (exclusive) to reverse.\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.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reverse(fromIndex: Int, toIndex: Int): Unit {\n storage.reverse(fromIndex, toIndex)\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 * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.shuffle(): Unit {\n shuffle(Random)\n}\n\n/**\n * Randomly shuffles elements in this array in-place 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.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.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 * Randomly shuffles elements in this array in-place 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.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.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 * Randomly shuffles elements in this array in-place 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.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.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 * Randomly shuffles elements in this array in-place 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.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.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 * 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.4\")\n@ExperimentalUnsignedTypes\npublic infix fun UIntArray?.contentEquals(other: UIntArray?): Boolean {\n return this?.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.4\")\n@ExperimentalUnsignedTypes\npublic infix fun ULongArray?.contentEquals(other: ULongArray?): Boolean {\n return this?.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.4\")\n@ExperimentalUnsignedTypes\npublic infix fun UByteArray?.contentEquals(other: UByteArray?): Boolean {\n return this?.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.4\")\n@ExperimentalUnsignedTypes\npublic infix fun UShortArray?.contentEquals(other: UShortArray?): Boolean {\n return this?.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.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray?.contentHashCode(): Int {\n return this?.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.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray?.contentHashCode(): Int {\n return this?.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.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray?.contentHashCode(): Int {\n return this?.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.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray?.contentHashCode(): Int {\n return this?.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.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray?.contentToString(): String {\n return this?.joinToString(\", \", \"[\", \"]\") ?: \"null\"\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.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray?.contentToString(): String {\n return this?.joinToString(\", \", \"[\", \"]\") ?: \"null\"\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.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray?.contentToString(): String {\n return this?.joinToString(\", \", \"[\", \"]\") ?: \"null\"\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.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray?.contentToString(): String {\n return this?.joinToString(\", \", \"[\", \"]\") ?: \"null\"\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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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@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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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@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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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@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) to copy.\n * @param toIndex the end of the range (exclusive) to copy.\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@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 * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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@ExperimentalUnsignedTypes\npublic fun UIntArray.fill(element: UInt, fromIndex: Int = 0, toIndex: Int = size): Unit {\n storage.fill(element.toInt(), 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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@ExperimentalUnsignedTypes\npublic fun ULongArray.fill(element: ULong, fromIndex: Int = 0, toIndex: Int = size): Unit {\n storage.fill(element.toLong(), 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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@ExperimentalUnsignedTypes\npublic fun UByteArray.fill(element: UByte, fromIndex: Int = 0, toIndex: Int = size): Unit {\n storage.fill(element.toByte(), 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) to fill, 0 by default.\n * @param toIndex the end of the range (exclusive) to fill, 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@ExperimentalUnsignedTypes\npublic fun UShortArray.fill(element: UShort, fromIndex: Int = 0, toIndex: Int = size): Unit {\n storage.fill(element.toShort(), 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 * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sort(): Unit {\n if (size > 1) sortArray(this, 0, size)\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sort(): Unit {\n if (size > 1) sortArray(this, 0, size)\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sort(): Unit {\n if (size > 1) sortArray(this, 0, size)\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sort(): Unit {\n if (size > 1) sortArray(this, 0, size)\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n sortArray(this, fromIndex, toIndex)\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n sortArray(this, fromIndex, toIndex)\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n sortArray(this, fromIndex, toIndex)\n}\n\n/**\n * Sorts a range in the array in-place.\n * \n * @param fromIndex the start of the range (inclusive) to sort, 0 by default.\n * @param toIndex the end of the range (exclusive) to sort, 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 * @sample samples.collections.Arrays.Sorting.sortRangeOfArray\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sort(fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n sortArray(this, fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\n}\n\n/**\n * Sorts elements of the array in the specified range in-place.\n * The elements are sorted descending according to their natural sort order.\n * \n * @param fromIndex the start of the range (inclusive) to sort.\n * @param toIndex the end of the range (exclusive) to sort.\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.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sortDescending(fromIndex: Int, toIndex: Int): Unit {\n sort(fromIndex, toIndex)\n reverse(fromIndex, toIndex)\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 [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.associateWith(valueSelector: (UInt) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.associateWith(valueSelector: (ULong) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.associateWith(valueSelector: (UByte) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Returns a [Map] where keys are elements from the given array 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 array.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.associateWith(valueSelector: (UShort) -> V): Map {\n val result = LinkedHashMap(mapCapacity(size).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 array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.associateWithTo(destination: M, valueSelector: (UInt) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.associateWithTo(destination: M, valueSelector: (ULong) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.associateWithTo(destination: M, valueSelector: (UByte) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given array,\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 * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.associateWithTo(destination: M, valueSelector: (UShort) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\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 * @sample samples.collections.Collections.Transformations.flatMap\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 * @sample samples.collections.Collections.Transformations.flatMap\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 * @sample samples.collections.Collections.Transformations.flatMap\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 * @sample samples.collections.Collections.Transformations.flatMap\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 * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.flatMapIndexed(transform: (index: Int, UInt) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.flatMapIndexed(transform: (index: Int, ULong) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.flatMapIndexed(transform: (index: Int, UByte) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.flatMapIndexed(transform: (index: Int, UShort) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.flatMapIndexedTo(destination: C, transform: (index: Int, UInt) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.flatMapIndexedTo(destination: C, transform: (index: Int, ULong) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.flatMapIndexedTo(destination: C, transform: (index: Int, UByte) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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\n * and its index in the original array, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.flatMapIndexedTo(destination: C, transform: (index: Int, UShort) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(index++, 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 > 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] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.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 */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.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 */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.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 */\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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 * Note that if the array contains no elements, the function returns `true`\n * because there are no elements in it that _do not_ match the predicate.\n * See a more detailed explanation of this logic concept in [\"Vacuous truth\"](https://en.wikipedia.org/wiki/Vacuous_truth) article.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element 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.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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element 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.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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element 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.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\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the array is empty.\n * \n * @param [operation] function that takes an element 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.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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 * \n * Returns the specified [initial] value if the array is empty.\n * \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 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 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 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 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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UIntArray.max(): UInt {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ULongArray.max(): ULong {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UByteArray.max(): UByte {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UShortArray.max(): UShort {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow-U\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > UIntArray.maxBy(selector: (UInt) -> R): UInt {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow-U\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > ULongArray.maxBy(selector: (ULong) -> R): ULong {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow-U\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > UByteArray.maxBy(selector: (UByte) -> R): UByte {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow-U\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > UShortArray.maxBy(selector: (UShort) -> R): UShort {\n if (isEmpty()) throw NoSuchElementException()\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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.maxByOrNull(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.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.maxByOrNull(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 largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.maxOf(selector: (UInt) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.maxOf(selector: (ULong) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.maxOf(selector: (UByte) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.maxOf(selector: (UShort) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.maxOf(selector: (UInt) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.maxOf(selector: (ULong) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.maxOf(selector: (UByte) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.maxOf(selector: (UShort) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.maxOf(selector: (UInt) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.maxOf(selector: (ULong) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.maxOf(selector: (UByte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.maxOf(selector: (UShort) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.maxOfOrNull(selector: (UInt) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.maxOfOrNull(selector: (ULong) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.maxOfOrNull(selector: (UByte) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.maxOfOrNull(selector: (UShort) -> Double): Double? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.maxOfOrNull(selector: (UInt) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.maxOfOrNull(selector: (ULong) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.maxOfOrNull(selector: (UByte) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.maxOfOrNull(selector: (UShort) -> Float): Float? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.maxOfOrNull(selector: (UInt) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.maxOfOrNull(selector: (ULong) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.maxOfOrNull(selector: (UByte) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.maxOfOrNull(selector: (UShort) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.maxOfWith(comparator: Comparator, selector: (UInt) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.maxOfWith(comparator: Comparator, selector: (ULong) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.maxOfWith(comparator: Comparator, selector: (UByte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.maxOfWith(comparator: Comparator, selector: (UShort) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.maxOfWithOrNull(comparator: Comparator, selector: (UInt) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.maxOfWithOrNull(comparator: Comparator, selector: (ULong) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.maxOfWithOrNull(comparator: Comparator, selector: (UByte) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.maxOfWithOrNull(comparator: Comparator, selector: (UShort) -> R): R? {\n if (isEmpty()) return null\n var maxValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.maxOrNull(): 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.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.maxOrNull(): 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.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.maxOrNull(): 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.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.maxOrNull(): 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 having the largest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UIntArray.maxWith(comparator: Comparator): UInt {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ULongArray.maxWith(comparator: Comparator): ULong {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UByteArray.maxWith(comparator: Comparator): UByte {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UShortArray.maxWith(comparator: Comparator): UShort {\n if (isEmpty()) throw NoSuchElementException()\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.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.maxWithOrNull(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.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.maxWithOrNull(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.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.maxWithOrNull(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.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.maxWithOrNull(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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UIntArray.min(): UInt {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ULongArray.min(): ULong {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UByteArray.min(): UByte {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UShortArray.min(): UShort {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow-U\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > UIntArray.minBy(selector: (UInt) -> R): UInt {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow-U\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > ULongArray.minBy(selector: (ULong) -> R): ULong {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow-U\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > UByteArray.minBy(selector: (UByte) -> R): UByte {\n if (isEmpty()) throw NoSuchElementException()\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.\n * \n * @throws NoSuchElementException if the array is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow-U\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > UShortArray.minBy(selector: (UShort) -> R): UShort {\n if (isEmpty()) throw NoSuchElementException()\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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.minByOrNull(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.minByOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.minByOrNull(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 smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.minOf(selector: (UInt) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.minOf(selector: (ULong) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.minOf(selector: (UByte) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.minOf(selector: (UShort) -> Double): Double {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.minOf(selector: (UInt) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.minOf(selector: (ULong) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.minOf(selector: (UByte) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.minOf(selector: (UShort) -> Float): Float {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.minOf(selector: (UInt) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.minOf(selector: (ULong) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.minOf(selector: (UByte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.minOf(selector: (UShort) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.minOfOrNull(selector: (UInt) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.minOfOrNull(selector: (ULong) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.minOfOrNull(selector: (UByte) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.minOfOrNull(selector: (UShort) -> Double): Double? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.minOfOrNull(selector: (UInt) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.minOfOrNull(selector: (ULong) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.minOfOrNull(selector: (UByte) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.minOfOrNull(selector: (UShort) -> Float): Float? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.minOfOrNull(selector: (UInt) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.minOfOrNull(selector: (ULong) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.minOfOrNull(selector: (UByte) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.minOfOrNull(selector: (UShort) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.minOfWith(comparator: Comparator, selector: (UInt) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.minOfWith(comparator: Comparator, selector: (ULong) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.minOfWith(comparator: Comparator, selector: (UByte) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array.\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.minOfWith(comparator: Comparator, selector: (UShort) -> R): R {\n if (isEmpty()) throw NoSuchElementException()\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.minOfWithOrNull(comparator: Comparator, selector: (UInt) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.minOfWithOrNull(comparator: Comparator, selector: (ULong) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.minOfWithOrNull(comparator: Comparator, selector: (UByte) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the array or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.minOfWithOrNull(comparator: Comparator, selector: (UShort) -> R): R? {\n if (isEmpty()) return null\n var minValue = selector(this[0])\n for (i in 1..lastIndex) {\n val v = selector(this[i])\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.minOrNull(): 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.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.minOrNull(): 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.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.minOrNull(): 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.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.minOrNull(): 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 having the smallest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UIntArray.minWith(comparator: Comparator): UInt {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun ULongArray.minWith(comparator: Comparator): ULong {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UByteArray.minWith(comparator: Comparator): UByte {\n if (isEmpty()) throw NoSuchElementException()\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].\n * \n * @throws NoSuchElementException if the array is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow-U\")\n@ExperimentalUnsignedTypes\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun UShortArray.minWith(comparator: Comparator): UShort {\n if (isEmpty()) throw NoSuchElementException()\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.4\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.minWithOrNull(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.4\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.minWithOrNull(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.4\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.minWithOrNull(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.4\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.minWithOrNull(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 * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.onEach(action: (UInt) -> Unit): UIntArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.onEach(action: (ULong) -> Unit): ULongArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.onEach(action: (UByte) -> Unit): UByteArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element and returns the array itself afterwards.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.onEach(action: (UShort) -> Unit): UShortArray {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.onEachIndexed(action: (index: Int, UInt) -> Unit): UIntArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.onEachIndexed(action: (index: Int, ULong) -> Unit): ULongArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.onEachIndexed(action: (index: Int, UByte) -> Unit): UByteArray {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the array itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.onEachIndexed(action: (index: Int, UShort) -> Unit): UShortArray {\n return apply { forEachIndexed(action) }\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.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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\n * to current accumulator value and each element.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\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 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reduceIndexedOrNull(operation: (index: Int, acc: UInt, UInt) -> UInt): UInt? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reduceIndexedOrNull(operation: (index: Int, acc: ULong, ULong) -> ULong): ULong? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reduceIndexedOrNull(operation: (index: Int, acc: UByte, UByte) -> UByte): UByte? {\n if (isEmpty())\n return null\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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reduceIndexedOrNull(operation: (index: Int, acc: UShort, UShort) -> UShort): UShort? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reduceOrNull(operation: (acc: UInt, UInt) -> UInt): UInt? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reduceOrNull(operation: (acc: ULong, ULong) -> ULong): ULong? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reduceOrNull(operation: (acc: UByte, UByte) -> UByte): UByte? {\n if (isEmpty())\n return null\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.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reduceOrNull(operation: (acc: UShort, UShort) -> UShort): UShort? {\n if (isEmpty())\n return null\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 last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 the 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 * \n * Throws an exception if this array is empty. If the array can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\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 * Accumulates value starting with the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reduceRightIndexedOrNull(operation: (index: Int, UInt, acc: UInt) -> UInt): UInt? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reduceRightIndexedOrNull(operation: (index: Int, ULong, acc: ULong) -> ULong): ULong? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reduceRightIndexedOrNull(operation: (index: Int, UByte, acc: UByte) -> UByte): UByte? {\n var index = lastIndex\n if (index < 0) return null\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 the 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 * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reduceRightIndexedOrNull(operation: (index: Int, UShort, acc: UShort) -> UShort): UShort? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reduceRightOrNull(operation: (UInt, acc: UInt) -> UInt): UInt? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reduceRightOrNull(operation: (ULong, acc: ULong) -> ULong): ULong? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reduceRightOrNull(operation: (UByte, acc: UByte) -> UByte): UByte? {\n var index = lastIndex\n if (index < 0) return null\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 the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the array is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reduceRightOrNull(operation: (UShort, acc: UShort) -> UShort): UShort? {\n var index = lastIndex\n if (index < 0) return null\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.runningFold(initial: R, operation: (acc: R, UInt) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.runningFold(initial: R, operation: (acc: R, ULong) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.runningFold(initial: R, operation: (acc: R, UByte) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.runningFold(initial: R, operation: (acc: R, UShort) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, UInt) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, ULong) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, UByte) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, UShort) -> R): List {\n if (isEmpty()) return listOf(initial)\n val result = ArrayList(size + 1).apply { add(initial) }\n var accumulator = initial\n for (index in indices) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.runningReduce(operation: (acc: UInt, UInt) -> UInt): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.runningReduce(operation: (acc: ULong, ULong) -> ULong): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.runningReduce(operation: (acc: UByte, UByte) -> UByte): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.runningReduce(operation: (acc: UShort, UShort) -> UShort): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.runningReduceIndexed(operation: (index: Int, acc: UInt, UInt) -> UInt): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.runningReduceIndexed(operation: (index: Int, acc: ULong, ULong) -> ULong): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.runningReduceIndexed(operation: (index: Int, acc: UByte, UByte) -> UByte): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with the first element of this array.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.runningReduceIndexed(operation: (index: Int, acc: UShort, UShort) -> UShort): List {\n if (isEmpty()) return emptyList()\n var accumulator = this[0]\n val result = ArrayList(size).apply { add(accumulator) }\n for (index in 1 until size) {\n accumulator = operation(index, accumulator, this[index])\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.scan(initial: R, operation: (acc: R, UInt) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.scan(initial: R, operation: (acc: R, ULong) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.scan(initial: R, operation: (acc: R, UByte) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.scan(initial: R, operation: (acc: R, UShort) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.scanIndexed(initial: R, operation: (index: Int, acc: R, UInt) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.scanIndexed(initial: R, operation: (index: Int, acc: R, ULong) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.scanIndexed(initial: R, operation: (index: Int, acc: R, UByte) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original array and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \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 * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.scanIndexed(initial: R, operation: (index: Int, acc: R, UShort) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\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 the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.sumOf(selector: (UInt) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.sumOf(selector: (ULong) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.sumOf(selector: (UByte) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.sumOf(selector: (UShort) -> Double): Double {\n var sum: Double = 0.toDouble()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.sumOf(selector: (UInt) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.sumOf(selector: (ULong) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.sumOf(selector: (UByte) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.sumOf(selector: (UShort) -> Int): Int {\n var sum: Int = 0.toInt()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.sumOf(selector: (UInt) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.sumOf(selector: (ULong) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.sumOf(selector: (UByte) -> Long): Long {\n var sum: Long = 0.toLong()\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.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.sumOf(selector: (UShort) -> Long): Long {\n var sum: Long = 0.toLong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.sumOf(selector: (UInt) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.sumOf(selector: (ULong) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.sumOf(selector: (UByte) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.sumOf(selector: (UShort) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.sumOf(selector: (UInt) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.sumOf(selector: (ULong) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.sumOf(selector: (UByte) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@Suppress(\"INAPPLICABLE_JVM_NAME\")\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@ExperimentalUnsignedTypes\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.sumOf(selector: (UShort) -> ULong): ULong {\n var sum: ULong = 0.toULong()\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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 sumOf { 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 sumOf { it.toUInt() }\n}\n\n","/*\n * Copyright 2010-2023 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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-2023 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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 greater of the given values.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun maxOf(a: UInt, vararg other: UInt): UInt {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun maxOf(a: ULong, vararg other: ULong): ULong {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun maxOf(a: UByte, vararg other: UByte): UByte {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the greater of the given values.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun maxOf(a: UShort, vararg other: UShort): UShort {\n var max = a\n for (e in other) max = maxOf(max, e)\n return max\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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 * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun minOf(a: UInt, vararg other: UInt): UInt {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun minOf(a: ULong, vararg other: ULong): ULong {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun minOf(a: UByte, vararg other: UByte): UByte {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n/**\n * Returns the smaller of the given values.\n */\n@SinceKotlin(\"1.4\")\n@ExperimentalUnsignedTypes\npublic fun minOf(a: UShort, vararg other: UShort): UShort {\n var min = a\n for (e in other) min = minOf(min, e)\n return min\n}\n\n","/*\n * Copyright 2010-2023 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 the first element.\n * \n * @throws NoSuchElementException if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun UIntProgression.first(): UInt {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.first\n}\n\n/**\n * Returns the first element.\n * \n * @throws NoSuchElementException if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun ULongProgression.first(): ULong {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.first\n}\n\n/**\n * Returns the first element, or `null` if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun UIntProgression.firstOrNull(): UInt? {\n return if (isEmpty()) null else this.first\n}\n\n/**\n * Returns the first element, or `null` if the progression is empty.\n */\n@SinceKotlin(\"1.7\")\npublic fun ULongProgression.firstOrNull(): ULong? {\n return if (isEmpty()) null else this.first\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun UIntProgression.last(): UInt {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.last\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun ULongProgression.last(): ULong {\n if (isEmpty())\n throw NoSuchElementException(\"Progression $this is empty.\")\n return this.last\n}\n\n/**\n * Returns the last element, or `null` if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun UIntProgression.lastOrNull(): UInt? {\n return if (isEmpty()) null else this.last\n}\n\n/**\n * Returns the last element, or `null` if the progression is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\n@SinceKotlin(\"1.7\")\npublic fun ULongProgression.lastOrNull(): ULong? {\n return if (isEmpty()) null else this.last\n}\n\n/**\n * Returns a random element from this range.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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 a random element from this range, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UIntRange.randomOrNull(): UInt? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this range, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULongRange.randomOrNull(): ULong? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\npublic fun UIntRange.randomOrNull(random: Random): UInt? {\n if (isEmpty())\n return null\n return random.nextUInt(this)\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness, or `null` if this range is empty.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\npublic fun ULongRange.randomOrNull(random: Random): ULong? {\n if (isEmpty())\n return null\n return random.nextULong(this)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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-2023 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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-2020 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 expect open class Error : Throwable {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\npublic expect open class Exception : Throwable {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\npublic expect open class RuntimeException : Exception {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\npublic expect open class IllegalArgumentException : RuntimeException {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\npublic expect open class IllegalStateException : RuntimeException {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\npublic expect open class IndexOutOfBoundsException : RuntimeException {\n constructor()\n constructor(message: String?)\n}\n\npublic expect open class ConcurrentModificationException : RuntimeException {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\npublic expect open class UnsupportedOperationException : RuntimeException {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\npublic expect open class NumberFormatException : IllegalArgumentException {\n constructor()\n constructor(message: String?)\n}\n\npublic expect open class NullPointerException : RuntimeException {\n constructor()\n constructor(message: String?)\n}\n\npublic expect open class ClassCastException : RuntimeException {\n constructor()\n constructor(message: String?)\n}\n\npublic expect open class AssertionError : Error {\n constructor()\n constructor(message: Any?)\n\n @SinceKotlin(\"1.9\")\n constructor(message: String?, cause: Throwable?)\n}\n\npublic expect open class NoSuchElementException : RuntimeException {\n constructor()\n constructor(message: String?)\n}\n\n@SinceKotlin(\"1.3\")\npublic expect open class ArithmeticException : RuntimeException {\n constructor()\n constructor(message: String?)\n}\n\n@Deprecated(\"This exception type is not supposed to be thrown or caught in common code and will be removed from kotlin-stdlib-common soon.\", level = DeprecationLevel.ERROR)\npublic expect open class NoWhenBranchMatchedException : RuntimeException {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\n@Deprecated(\"This exception type is not supposed to be thrown or caught in common code and will be removed from kotlin-stdlib-common soon.\", level = DeprecationLevel.ERROR)\npublic expect class UninitializedPropertyAccessException : RuntimeException {\n constructor()\n constructor(message: String?)\n constructor(message: String?, cause: Throwable?)\n constructor(cause: Throwable?)\n}\n\n/**\n * Thrown after invocation of a function or property that was expected to return `Nothing`, but returned something instead.\n */\n@SinceKotlin(\"1.4\")\n@PublishedApi\ninternal class KotlinNothingValueException : RuntimeException {\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 * Returns the detailed description of this throwable with its stack trace.\n *\n * The detailed description includes:\n * - the short description (see [Throwable.toString]) of this throwable;\n * - the complete stack trace;\n * - detailed descriptions of the exceptions that were [suppressed][suppressedExceptions] in order to deliver this exception;\n * - the detailed description of each throwable in the [Throwable.cause] chain.\n */\n@SinceKotlin(\"1.4\")\npublic expect fun Throwable.stackTraceToString(): String\n\n/**\n * Prints the [detailed description][Throwable.stackTraceToString] of this throwable to the standard output or standard error output.\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\")\npublic expect fun Throwable.printStackTrace(): Unit\n\n/**\n * When supported by the platform, adds the specified exception to the list of exceptions that were\n * suppressed in order to deliver this exception.\n */\n@SinceKotlin(\"1.4\")\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\")\npublic expect fun Throwable.addSuppressed(exception: Throwable)\n\n/**\n * Returns a list of all exceptions that were suppressed in order to deliver this exception.\n *\n * The list can be empty:\n * - if no exceptions were suppressed;\n * - if the platform doesn't support suppressed exceptions;\n * - if this [Throwable] instance has disabled the suppression.\n */\n@SinceKotlin(\"1.4\")\npublic expect val Throwable.suppressedExceptions: List\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/**\n * Gives a declaration (a function, a property or a class) specific name in JavaScript.\n */\n@Target(CLASS, FUNCTION, PROPERTY, CONSTRUCTOR, PROPERTY_GETTER, PROPERTY_SETTER)\n@OptionalExpectation\npublic expect annotation class JsName(val name: String)\n\n/**\n * Marks experimental JS export annotations.\n *\n * Note that behavior of these annotations will likely be changed in the future.\n *\n * Usages of such annotations will be reported as warnings unless an explicit opt-in with\n * the [OptIn] annotation, e.g. `@OptIn(ExperimentalJsExport::class)`,\n * or with the `-opt-in=kotlin.js.ExperimentalJsExport` compiler option is given.\n */\n@RequiresOptIn(level = RequiresOptIn.Level.WARNING)\n@MustBeDocumented\n@Retention(AnnotationRetention.BINARY)\n@SinceKotlin(\"1.4\")\npublic annotation class ExperimentalJsExport\n\n/**\n * Exports top-level declaration on JS platform.\n *\n * Compiled module exposes declarations that are marked with this annotation without name mangling.\n *\n * This annotation can be applied to either files or top-level declarations.\n *\n * It is currently prohibited to export the following kinds of declarations:\n *\n * * `expect` declarations\n * * inline functions with reified type parameters\n * * suspend functions\n * * secondary constructors without `@JsName`\n * * extension properties\n * * enum classes\n * * annotation classes\n *\n * Signatures of exported declarations must only contain \"exportable\" types:\n *\n * * `dynamic`, `Any`, `String`, `Boolean`, `Byte`, `Short`, `Int`, `Float`, `Double`\n * * `BooleanArray`, `ByteArray`, `ShortArray`, `IntArray`, `FloatArray`, `DoubleArray`\n * * `Array`\n * * Function types with exportable parameters and return types\n * * `external` or `@JsExport` classes and interfaces\n * * Nullable counterparts of types above\n * * Unit return type. Must not be nullable\n *\n * This annotation is experimental, meaning that restrictions mentioned above are subject to change.\n */\n@ExperimentalJsExport\n@Retention(AnnotationRetention.BINARY)\n@Target(CLASS, PROPERTY, FUNCTION, FILE)\n@SinceKotlin(\"1.4\")\n@OptionalExpectation\npublic expect annotation class JsExport() {\n /*\n * The annotation prevents exporting the annotated member of an exported class.\n * This annotation is experimental, meaning that the restrictions mentioned above are subject to change.\n */\n @ExperimentalJsExport\n @Retention(AnnotationRetention.BINARY)\n @Target(CLASS, PROPERTY, FUNCTION)\n @SinceKotlin(\"1.8\")\n @OptionalExpectation\n public annotation class Ignore()\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.io\n\n\n/** Prints the line separator to the standard output stream. */\npublic expect fun println()\n\n/** Prints the given [message] and the line separator to the standard output stream. */\npublic expect fun println(message: Any?)\n\n/** Prints the given [message] to the standard output stream. */\npublic expect fun print(message: Any?)\n\n/**\n * Reads a line of input from the standard input stream and returns it,\n * or throws a [RuntimeException] if EOF has already been reached when [readln] is called.\n *\n * LF or CRLF is treated as the line terminator. Line terminator is not included in the returned string.\n *\n * Currently this function is not supported in Kotlin/JS and throws [UnsupportedOperationException].\n */\n@SinceKotlin(\"1.6\")\npublic expect fun readln(): String\n\n/**\n * Reads a line of input from the standard input stream and returns it,\n * or return `null` if EOF has already been reached when [readlnOrNull] is called.\n *\n * LF or CRLF is treated as the line terminator. Line terminator is not included in the returned string.\n *\n * Currently this function is not supported in Kotlin/JS and throws [UnsupportedOperationException].\n */\n@SinceKotlin(\"1.6\")\npublic expect fun readlnOrNull(): String?\n\ninternal class ReadAfterEOFException(message: String?) : RuntimeException(message)\n\n\ninternal expect interface Serializable\n","/*\n * Copyright 2010-2020 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.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 in 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 in 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 in 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 in 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 in 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 in 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 in 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 in 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 in 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 in 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 throw NotImplementedError()\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 in its key type.\n * @param V the type of map values. The mutable map is invariant in 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-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 */\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-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(@Suppress(\"UNUSED_PARAMETER\") baseClass: JsClass, instance: Throwable) {\n if (js(\"Error\").captureStackTrace) {\n // Using uncropped stack traces due to KT-37563.\n // Precise stack traces are implemented in JS IR compiler and stdlib\n js(\"Error\").captureStackTrace(instance);\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\")\ninternal fun charArrayOf() = withType(\"CharArray\", js(\"new Uint16Array(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-2021 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 * Creates a Char with the specified [code].\n *\n * @sample samples.text.Chars.charFromCode\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic actual inline fun Char(code: UShort): Char {\n return code.toInt().toChar()\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.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\nimport kotlin.jvm.JvmInline\nimport kotlin.jvm.JvmName\n\n/**\n * A discriminated union that encapsulates a successful outcome with a value of type [T]\n * or a failure with an arbitrary [Throwable] exception.\n */\n@SinceKotlin(\"1.3\")\n@JvmInline\npublic value 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 a 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 a 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 a 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 [Throwable] exception if this instance represents [failure][isFailure] or `null`\n * if it is [success][isSuccess].\n *\n * This function is a 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 @Suppress(\"INAPPLICABLE_JVM_NAME\")\n @InlineOnly\n @JvmName(\"success\")\n public inline fun success(value: T): Result =\n Result(value)\n\n /**\n * Returns an instance that encapsulates the given [Throwable] [exception] as failure.\n */\n @Suppress(\"INAPPLICABLE_JVM_NAME\")\n @InlineOnly\n @JvmName(\"failure\")\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 any [Throwable] exception that was thrown from the [block] function execution and encapsulating it 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 if invocation was successful,\n * catching any [Throwable] exception that was thrown from the [block] function execution and encapsulating it 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 [Throwable] exception\n * if it is [failure][Result.isFailure].\n *\n * This function is a 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 the encapsulated [Throwable] exception if it is [failure][Result.isFailure].\n *\n * Note, that this function rethrows any [Throwable] exception thrown by [onFailure] function.\n *\n * This function is a 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 a 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 result of [onSuccess] for the encapsulated value if this instance represents [success][Result.isSuccess]\n * or the result of [onFailure] function for the encapsulated [Throwable] exception if it is [failure][Result.isFailure].\n *\n * Note, that this function rethrows any [Throwable] exception thrown by [onSuccess] or by [onFailure] 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 the encapsulated value\n * if this instance represents [success][Result.isSuccess] or the\n * original encapsulated [Throwable] exception if it is [failure][Result.isFailure].\n *\n * Note, that this function rethrows any [Throwable] exception thrown by [transform] 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 the encapsulated value\n * if this instance represents [success][Result.isSuccess] or the\n * original encapsulated [Throwable] exception if it is [failure][Result.isFailure].\n *\n * This function catches any [Throwable] exception thrown by [transform] function and encapsulates it as a failure.\n * See [map] for an alternative that rethrows exceptions from `transform` function.\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 the encapsulated [Throwable] 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 this function rethrows any [Throwable] exception thrown by [transform] 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 the encapsulated [Throwable] exception\n * if this instance represents [failure][Result.isFailure] or the\n * original encapsulated value if it is [success][Result.isSuccess].\n *\n * This function catches any [Throwable] exception thrown by [transform] function and encapsulates it as a failure.\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 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 the encapsulated [Throwable] 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 the 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-2020 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.contracts.*\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 contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }\n return suspendCoroutineUninterceptedOrReturn { c: Continuation ->\n val safe = SafeContinuation(c.intercepted())\n block(safe)\n safe.getOrThrow()\n }\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()(if (this !is CoroutineImpl) createSimpleCoroutineFromSuspendFunction(completion) else 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()(\n receiver, if (this !is CoroutineImpl) createSimpleCoroutineFromSuspendFunction(completion) else completion, false\n)\n\n@InlineOnly\ninternal actual inline fun (suspend R.(P) -> T).startCoroutineUninterceptedOrReturn(\n receiver: R,\n param: P,\n completion: Continuation\n): Any? = this.asDynamic()(\n receiver, param, if (this !is CoroutineImpl) createSimpleCoroutineFromSuspendFunction(completion) else 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@PublishedApi\ninternal fun createSimpleCoroutineFromSuspendFunction(\n completion: Continuation\n): CoroutineImpl = object : CoroutineImpl(completion as Continuation) {\n override fun doResume(): Any? {\n if (exception != null) throw exception as Throwable\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\npackage kotlin.js\n\n// Mirrors signature from JS IR BE\n// Used for js.translator/testData/box/number/mulInt32.kt\n@library\n@JsName(\"imulEmulated\")\n@Suppress(\"UNUSED_PARAMETER\")\ninternal fun imul(x: Int, y: Int): Int = definedExternally\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal inline fun isArrayish(o: dynamic) = js(\"Kotlin\").isArrayish(o)\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 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 actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\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 actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\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\n@SinceKotlin(\"1.4\")\nactual 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-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-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.math\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 * 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/**\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\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal inline fun Long(low: Int, high: Int) = js(\"Kotlin\").Long.fromBits(low, high).unsafeCast()\ninternal inline val Long.low: Int get() = this.asDynamic().getLowBits().unsafeCast()\ninternal inline val Long.high: Int get() = this.asDynamic().getHighBits().unsafeCast()\n","/*\n * Copyright 2010-2020 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\nimport kotlin.reflect.KClass\n\n@PublishedApi\ninternal fun KClass<*>.findAssociatedObject(@Suppress(\"UNUSED_PARAMETER\") annotationClass: KClass): Any? {\n // This API is not supported in js-v1. Return `null` to be source-compatible with js-ir.\n return 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/**\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 * Copyright 2010-2021 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@PublishedApi\n@Suppress(\"NOTHING_TO_INLINE\")\n@JsPolyfill(\"\"\"\nif (typeof Array.prototype.fill === \"undefined\") {\n // Polyfill from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill\n Object.defineProperty(Array.prototype, 'fill', {\n value: function (value) {\n // Steps 1-2.\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n\n var O = Object(this);\n\n // Steps 3-5.\n var len = O.length >>> 0;\n\n // Steps 6-7.\n var start = arguments[1];\n var relativeStart = start >> 0;\n\n // Step 8.\n var k = relativeStart < 0 ?\n Math.max(len + relativeStart, 0) :\n Math.min(relativeStart, len);\n\n // Steps 9-10.\n var end = arguments[2];\n var relativeEnd = end === undefined ?\n len : end >> 0;\n\n // Step 11.\n var finalValue = relativeEnd < 0 ?\n Math.max(len + relativeEnd, 0) :\n Math.min(relativeEnd, len);\n\n // Step 12.\n while (k < finalValue) {\n O[k] = value;\n k++;\n }\n\n // Step 13.\n return O;\n }\n });\n}\n\n[Int8Array, Int16Array, Uint16Array, Int32Array, Float32Array, Float64Array].forEach(function (TypedArray) {\n if (typeof TypedArray.prototype.fill === \"undefined\") {\n Object.defineProperty(TypedArray.prototype, 'fill', {\n value: Array.prototype.fill\n });\n }\n})\n\"\"\")\ninternal inline fun Any.nativeFill(element: Any?, fromIndex: Int, toIndex: Int): Unit {\n asDynamic().fill(element, fromIndex, toIndex)\n}\n","/*\n * Copyright 2010-2021 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@PublishedApi\n@Suppress(\"NOTHING_TO_INLINE\")\n@JsPolyfill(\"\"\"\n[Int8Array, Int16Array, Uint16Array, Int32Array, Float32Array, Float64Array].forEach(function (TypedArray) {\n if (typeof TypedArray.prototype.sort === \"undefined\") {\n Object.defineProperty(TypedArray.prototype, 'sort', {\n value: function(compareFunction) {\n compareFunction = compareFunction || function (a, b) {\n if (a < b) return -1;\n if (a > b) return 1;\n if (a === b) {\n if (a !== 0) return 0;\n var ia = 1 / a;\n return ia === 1 / b ? 0 : (ia < 0 ? -1 : 1);\n }\n return a !== a ? (b !== b ? 0 : 1) : -1\n }\n return Array.prototype.sort.call(this, compareFunction || totalOrderComparator);\n }\n });\n }\n})\n\"\"\")\ninternal inline fun Any.nativeSort(noinline comparison: (a: dynamic, b: dynamic) -> Int = js(\"undefined\")): Unit {\n asDynamic().sort(comparison)\n}","/*\n * Copyright 2010-2023 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 GenerateUnicodeData.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\n// 1343 ranges totally\nprivate object Category {\n val decodedRangeStart: IntArray\n val decodedRangeCategory: IntArray\n \n init {\n val toBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n val fromBase64 = IntArray(128)\n for (i in toBase64.indices) {\n fromBase64[toBase64[i].code] = i\n }\n \n // rangeStartDiff.length = 1482\n val rangeStartDiff = \"gBCFEDCKCDCaDDaDBhBCEEDDDDDEDXBHYBH5BRwBGDCHDCIDFHDCHFDCDEIRTEE7BGHDDJlCBbSEMOFGERwDEDDDDECEFCRBJhBFDCYFFCCzBvBjBBFC3BOhDBmBDGpBDDCtBBJIbEECLGDFCLDCgBBKVKEDiDDHCFECECKCEODBebC5CLBOKhBJDDDDWEBHFCFCPBZDEL1BVBSLPBgBB2BDBDICFBHKCCKCPDBHEDWBHEDDDDEDEDIBDGDCKCCGDDDCGECCWBFMDDCDEDDCHDDHKDDBKDBHFCWBFGFDBDDFEDBPDDKCHBGDCHEDWBFGFDCEDEDBHDDGDCKCGJEGDBFDDFDDDDDMEFDBFDCGBOKDFDFDCGFCXBQDDDDDBEGEDFDDKHBHDDGFCXBKBFCEFCFCHCHECCKDNCCHFCoBEDECFDDDDHDCCKJBGDCSDYBJEHBFDDEBIGKDCMuBFHEBGBIBKCkBFBFBXEIFJDFDGCKCEgBBDPEDGKKGECIBkBEOBDFFLBkBBIBEFFEClBrBCEBEGDBKGGDDDDDCHDENDCFEKDDlBDDFrBCDpKBECGEECpBBEChBBECGEECPB5BBECjCCDJUDQKG2CCGDsTCRBaCDrCDDIHNBEDLSDCJSCMLFCCM0BDHGFLBFDDKGKGEFDDBKGjBB1BHFChBDFmCKfDDDDDDCGDCFDKeCFLsBEaGKBDiBXDDD1BDGDEIGJEKGKGHBGCMF/BEBvBCEDDFHEKHKJJDDeDDGDKsBFEDCIEkBIICCDFKDDKeGCJHrBCDIIDBNBHEBEFDBFsB/BNBiBlB6BBF1EIiDJIGCGCIIIIGCGCIIIIOCIIIIIIDFEDDBFEDDDDEBDIFDDFEDBLFGCEEICFBJCDEDCLDKBFBKCCGDDKDDNDgBQNEBDMPFFDEDEBFFHECEBEEDFBEDDQjBCEDEFFCCJHBeEEfsIIEUCHCxCBeZoBGlCZLV8BuCW3FBJB2BIvDB4HOesBFCfKQgIjEW/BEgBCiIwBVCGnBCgBBpDvBBuBEDBHEFGCCjDCGEDCFCFlBDDF4BHCOBXJHBHBHBHBHBHBHBHBgBCECGHGEDIFBKCEDMEtBaB5CM2GaMEDDCKCGFCJEDFDDDC2CDDDB6CDCFrBB+CDEKgBkBMQfBKeIBPgBKnBPgKguGgC9vUDVB3jBD3BJoBGCsIBDQKCUuBDDKCcCCmCKCGIXJCNC/BBHGKDECEVFBEMCEEBqBDDGDFDXDCEBDGEG0BEICyBQCICKGSGDEBKcICXLCLBdDDBvBDECCDNCKECFCJKFBpBFEDCJDBICCKCEQBGDDByBEDCEFBYDCLEDDCKGCGCGJHBHBrBBEJDEwCjBIDCKGk9KMXExBEggCgoGuLCqDmBHMFFCKBNBFBIsDQRrLCQgCC2BoBMCCQGEGQDCQDDDDFDGDECEEFBnEEBFEDCKCDCaDDaDBFCKBtBCfDGCGCFEDDDDCECKDC\"\n val diff = decodeVarLenBase64(rangeStartDiff, fromBase64, 1342)\n val start = IntArray(diff.size + 1)\n for (i in diff.indices) {\n start[i + 1] = start[i] + diff[i]\n }\n decodedRangeStart = start\n \n // rangeCategory.length = 2033\n val rangeCategory = \"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\"\n decodedRangeCategory = decodeVarLenBase64(rangeCategory, fromBase64, 1343)\n }\n}\n\nprivate fun categoryValueFrom(code: Int, ch: Int): Int {\n return when {\n code < 0x20 -> code\n code < 0x400 -> if ((ch and 1) == 1) code shr 5 else code and 0x1f\n else ->\n when (ch % 3) {\n 2 -> code shr 10\n 1 -> (code shr 5) and 0x1f\n else -> code and 0x1f\n }\n }\n}\n\n/**\n * Returns the Unicode general category of this character as an Int.\n */\ninternal fun Char.getCategoryValue(): Int {\n val ch = this.code\n\n val index = binarySearchRange(Category.decodedRangeStart, ch)\n val start = Category.decodedRangeStart[index]\n val code = Category.decodedRangeCategory[index]\n val value = categoryValueFrom(code, ch - start)\n\n return if (value == 17) CharCategory.UNASSIGNED.value else value\n}\n\ninternal fun decodeVarLenBase64(base64: String, fromBase64: IntArray, resultLength: Int): IntArray {\n val result = IntArray(resultLength)\n var index = 0\n var int = 0\n var shift = 0\n for (char in base64) {\n val sixBit = fromBase64[char.code]\n int = int or ((sixBit and 0x1f) shl shift)\n if (sixBit < 0x20) {\n result[index++] = int\n int = 0\n shift = 0\n } else {\n shift += 5\n }\n }\n return result\n}\n","/*\n * Copyright 2010-2023 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-2023 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 GenerateUnicodeData.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\n// 37 ranges totally\nprivate object Digit {\n internal val rangeStart = intArrayOf(\n 0x0030, 0x0660, 0x06f0, 0x07c0, 0x0966, 0x09e6, 0x0a66, 0x0ae6, 0x0b66, 0x0be6, 0x0c66, 0x0ce6, 0x0d66, 0x0de6, 0x0e50, 0x0ed0, 0x0f20, 0x1040, 0x1090, 0x17e0, \n 0x1810, 0x1946, 0x19d0, 0x1a80, 0x1a90, 0x1b50, 0x1bb0, 0x1c40, 0x1c50, 0xa620, 0xa8d0, 0xa900, 0xa9d0, 0xa9f0, 0xaa50, 0xabf0, 0xff10, \n )\n}\n\n/**\n * Returns the index of the largest element in [array] smaller or equal to the specified [needle],\n * or -1 if [needle] is smaller than the smallest element in [array].\n */\ninternal fun binarySearchRange(array: IntArray, needle: Int): Int {\n var bottom = 0\n var top = array.size - 1\n var middle = -1\n var value = 0\n while (bottom <= top) {\n middle = (bottom + top) / 2\n value = array[middle]\n if (needle > value)\n bottom = middle + 1\n else if (needle == value)\n return middle\n else\n top = middle - 1\n }\n return middle - (if (needle < value) 1 else 0)\n}\n\n/**\n * Returns an integer from 0..9 indicating the digit this character represents,\n * or -1 if this character is not a digit.\n */\ninternal fun Char.digitToIntImpl(): Int {\n val ch = this.code\n val index = binarySearchRange(Digit.rangeStart, ch)\n val diff = ch - Digit.rangeStart[index]\n return if (diff < 10) diff else -1\n}\n\n/**\n * Returns `true` if this character is a digit.\n */\ninternal fun Char.isDigitImpl(): Boolean {\n return digitToIntImpl() >= 0\n}\n","/*\n * Copyright 2010-2023 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 GenerateUnicodeData.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\n// 222 ranges totally\nprivate object Letter {\n val decodedRangeStart: IntArray\n val decodedRangeLength: IntArray\n val decodedRangeCategory: IntArray\n \n init {\n val toBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n val fromBase64 = IntArray(128)\n for (i in toBase64.indices) {\n fromBase64[toBase64[i].code] = i\n }\n \n // rangeStartDiff.length = 356\n val rangeStartDiff = \"hCgBpCQGYHZH5BRpBPPPPPPRMP5BPPlCPP6BkEPPPPcPXPzBvBrB3BOiDoBHwD+E3DauCnFmBmB2D6E1BlBTiBmBlBP5BhBiBrBvBjBqBnBPRtBiCmCtBlB0BmB5BiB7BmBgEmChBZgCoEoGVpBSfRhBPqKQ2BwBYoFgB4CJuTiEvBuCuDrF5DgEgFlJ1DgFmBQtBsBRGsB+BPiBlD1EIjDPRPPPQPPPPPGQSQS/DxENVNU+B9zCwBwBPPCkDPNnBPqDYY1R8B7FkFgTgwGgwUwmBgKwBuBScmEP/BPPPPPPrBP8B7F1B/ErBqC6B7BiBmBfQsBUwCw/KwqIwLwETPcPjQgJxFgBlBsD\"\n val diff = decodeVarLenBase64(rangeStartDiff, fromBase64, 222)\n val start = IntArray(diff.size)\n for (i in diff.indices) {\n if (i == 0) start[i] = diff[i]\n else start[i] = start[i - 1] + diff[i]\n }\n decodedRangeStart = start\n \n // rangeLength.length = 328\n val rangeLength = \"aaMBXHYH5BRpBPPPPPPRMP5BPPlCPPzBDOOPPcPXPzBvBjB3BOhDmBBpB7DoDYxB+EiBP1DoExBkBQhBekBPmBgBhBctBiBMWOOXhCsBpBkBUV3Ba4BkB0DlCgBXgBtD4FSdBfPhBPpKP0BvBXjEQ2CGsT8DhBtCqDpFvD1D3E0IrD2EkBJrBDOBsB+BPiBlB1EIjDPPPPPPPPPPPGPPMNLsBNPNPKCvBvBPPCkDPBmBPhDXXgD4B6FzEgDguG9vUtkB9JcuBSckEP/BPPPPPPBPf4FrBjEhBpC3B5BKaWPrBOwCk/KsCuLqDHPbPxPsFtEaaqDL\"\n decodedRangeLength = decodeVarLenBase64(rangeLength, fromBase64, 222)\n \n // rangeCategory.length = 959\n val rangeCategory = \"GFjgggUHGGFFZZZmzpz5qB6s6020B60ptltB6smt2sB60mz22B1+vv+8BZZ5s2850BW5q1ymtB506smzBF3q1q1qB1q1q1+Bgii4wDTm74g3KiggxqM60q1q1Bq1o1q1BF1qlrqrBZ2q5wprBGFZWWZGHFsjiooLowgmOowjkwCkgoiIk7ligGogiioBkwkiYkzj2oNoi+sbkwj04DghhkQ8wgiYkgoioDsgnkwC4gikQ//v+85BkwvoIsgoyI4yguI0whiwEowri4CoghsJowgqYowgm4DkwgsY/nwnzPowhmYkg6wI8yggZswikwHgxgmIoxgqYkwgk4DkxgmIkgoioBsgssoBgzgyI8g9gL8g9kI0wgwJoxgkoC0wgioFkw/wI0w53iF4gioYowjmgBHGq1qkgwBF1q1q8qBHwghuIwghyKk0goQkwgoQk3goQHGFHkyg0pBgxj6IoinkxDswno7Ikwhz9Bo0gioB8z48Rwli0xN0mpjoX8w78pDwltoqKHFGGwwgsIHFH3q1q16BFHWFZ1q10q1B2qlwq1B1q10q1B2q1yq1B6q1gq1Biq1qhxBir1qp1Bqt1q1qB1g1q1+B//3q16B///q1qBH/qlqq9Bholqq9B1i00a1q10qD1op1HkwmigEigiy6Cptogq1Bixo1kDq7/j00B2qgoBWGFm1lz50B6s5q1+BGWhggzhwBFFhgk4//Bo2jigE8wguI8wguI8wgugUog1qoB4qjmIwwi2KgkYHHH4lBgiFWkgIWoghssMmz5smrBZ3q1y50B5sm7gzBtz1smzB5smz50BqzqtmzB5sgzqzBF2/9//5BowgoIwmnkzPkwgk4C8ys65BkgoqI0wgy6FghquZo2giY0ghiIsgh24B4ghsQ8QF/v1q1OFs0O8iCHHF1qggz/B8wg6Iznv+//B08QgohsjK0QGFk7hsQ4gB\"\n decodedRangeCategory = decodeVarLenBase64(rangeCategory, fromBase64, 222)\n }\n}\n\n/**\n * Returns `true` if this character is a letter.\n */\ninternal fun Char.isLetterImpl(): Boolean {\n return getLetterType() != 0\n}\n\n/**\n * Returns `true` if this character is a lower case letter, or it has contributory property `Other_Lowercase`.\n */\ninternal fun Char.isLowerCaseImpl(): Boolean {\n return getLetterType() == 1 || code.isOtherLowercase()\n}\n\n/**\n * Returns `true` if this character is an upper case letter, or it has contributory property `Other_Uppercase`.\n */\ninternal fun Char.isUpperCaseImpl(): Boolean {\n return getLetterType() == 2 || code.isOtherUppercase()\n}\n\n/**\n * Returns\n * - `1` if the character is a lower case letter,\n * - `2` if the character is an upper case letter,\n * - `3` if the character is a letter but not a lower or upper case letter,\n * - `0` otherwise.\n */\nprivate fun Char.getLetterType(): Int {\n val ch = this.code\n val index = binarySearchRange(Letter.decodedRangeStart, ch)\n\n val rangeStart = Letter.decodedRangeStart[index]\n val rangeEnd = rangeStart + Letter.decodedRangeLength[index] - 1\n val code = Letter.decodedRangeCategory[index]\n\n if (ch > rangeEnd) {\n return 0\n }\n\n val lastTwoBits = code and 0x3\n\n if (lastTwoBits == 0) { // gap pattern\n var shift = 2\n var threshold = rangeStart\n for (i in 0..1) {\n threshold += (code shr shift) and 0x7f\n if (threshold > ch) {\n return 3\n }\n shift += 7\n threshold += (code shr shift) and 0x7f\n if (threshold > ch) {\n return 0\n }\n shift += 7\n }\n return 3\n }\n\n if (code <= 0x7) {\n return lastTwoBits\n }\n\n val distance = (ch - rangeStart)\n val shift = if (code <= 0x1F) distance % 2 else distance\n return (code shr (2 * shift)) and 0x3\n}\n\n","/*\n * Copyright 2010-2023 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 GenerateUnicodeData.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nprivate object OtherLowercase {\n internal val otherLowerStart = intArrayOf(\n 0x00aa, 0x00ba, 0x02b0, 0x02c0, 0x02e0, 0x0345, 0x037a, 0x1d2c, 0x1d78, 0x1d9b, 0x2071, 0x207f, 0x2090, 0x2170, 0x24d0, 0x2c7c, 0xa69c, 0xa770, 0xa7f8, 0xab5c, \n )\n internal val otherLowerLength = intArrayOf(\n 1, 1, 9, 2, 5, 1, 1, 63, 1, 37, 1, 1, 13, 16, 26, 2, 2, 1, 2, 4, \n )\n}\n\ninternal fun Int.isOtherLowercase(): Boolean {\n val index = binarySearchRange(OtherLowercase.otherLowerStart, this)\n return index >= 0 && this < OtherLowercase.otherLowerStart[index] + OtherLowercase.otherLowerLength[index]\n}\n","/*\n * Copyright 2010-2023 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 GenerateUnicodeData.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\ninternal fun Int.isOtherUppercase(): Boolean {\n return this in 0x2160..0x216f\n || this in 0x24b6..0x24cf\n}\n","/*\n * Copyright 2010-2023 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-2023 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 GenerateUnicodeData.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\n// 4 ranges totally\ninternal fun Char.titlecaseCharImpl(): Char {\n val code = this.code\n // Letters repeating sequence and code of the Lt is a multiple of 3, e.g. <\u01c4, \u01c5, \u01c6>\n if (code in 0x01c4..0x01cc || code in 0x01f1..0x01f3) {\n return (3 * ((code + 1) / 3)).toChar()\n }\n // Lower case letters whose title case mapping equivalent is equal to the original letter\n if (code in 0x10d0..0x10fa || code in 0x10fd..0x10ff) {\n return this\n }\n return uppercaseChar()\n}","/*\n * Copyright 2010-2023 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 @Suppress(\"USELESS_CAST\")\n if ((element as Any?) !is UInt) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: UInt): Int {\n @Suppress(\"USELESS_CAST\")\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 @Suppress(\"USELESS_CAST\")\n if ((element as Any?) !is ULong) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: ULong): Int {\n @Suppress(\"USELESS_CAST\")\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 @Suppress(\"USELESS_CAST\")\n if ((element as Any?) !is UByte) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: UByte): Int {\n @Suppress(\"USELESS_CAST\")\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 @Suppress(\"USELESS_CAST\")\n if ((element as Any?) !is UShort) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: UShort): Int {\n @Suppress(\"USELESS_CAST\")\n if ((element as Any?) !is UShort) return -1\n return this@asList.lastIndexOf(element)\n }\n }\n}\n\n","/*\n * Copyright 2010-2023 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 GenerateUnicodeData.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\n// 9 ranges totally\n/**\n * Returns `true` if this character is a whitespace.\n */\ninternal fun Char.isWhitespaceImpl(): Boolean {\n val ch = this.code\n return ch in 0x0009..0x000d\n || ch in 0x001c..0x0020\n || ch == 0x00a0\n || ch > 0x1000 && (\n ch == 0x1680\n || ch in 0x2000..0x200a\n || ch == 0x2028\n || ch == 0x2029\n || ch == 0x202f\n || ch == 0x205f\n || ch == 0x3000\n )\n}\n","/*\n * Copyright 2010-2022 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.InvocationKind\nimport kotlin.contracts.contract\n\n@SinceKotlin(\"1.8\")\n@ExperimentalStdlibApi\npublic actual interface AutoCloseable {\n public actual fun close(): Unit\n}\n\n@SinceKotlin(\"1.8\")\n@ExperimentalStdlibApi\n@kotlin.internal.InlineOnly\npublic actual inline fun T.use(block: (T) -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n var exception: Throwable? = null\n try {\n return block(this)\n } catch (e: Throwable) {\n exception = e\n throw e\n } finally {\n this.closeFinally(exception)\n }\n}\n\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.8\")\n@PublishedApi\ninternal fun AutoCloseable?.closeFinally(cause: Throwable?) = when {\n this == null -> {}\n cause == null -> close()\n else ->\n try {\n close()\n } catch (closeException: Throwable) {\n cause.addSuppressed(closeException)\n }\n}\n","/*\n * Copyright 2010-2020 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 fun interface Comparator {\n @JsName(\"compare\")\n public actual fun compare(a: T, b: T): Int\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-2020 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(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\n/**\n * Exports top-level declaration on JS platform.\n *\n * Compiled module exposes declarations that are marked with this annotation without name mangling.\n *\n * This annotation can be applied to either files or top-level declarations.\n *\n * It is currently prohibited to export the following kinds of declarations:\n *\n * * `expect` declarations\n * * inline functions with reified type parameters\n * * suspend functions\n * * secondary constructors without `@JsName`\n * * extension properties\n * * enum classes\n * * annotation classes\n *\n * Signatures of exported declarations must only contain \"exportable\" types:\n *\n * * `dynamic`, `Any`, `String`, `Boolean`, `Byte`, `Short`, `Int`, `Float`, `Double`\n * * `BooleanArray`, `ByteArray`, `ShortArray`, `IntArray`, `FloatArray`, `DoubleArray`\n * * `Array`\n * * Function types with exportable parameters and return types\n * * `external` or `@JsExport` classes and interfaces\n * * Nullable counterparts of types above\n * * Unit return type. Must not be nullable\n *\n * This annotation is experimental, meaning that restrictions mentioned above are subject to change.\n */\n@ExperimentalJsExport\n@Retention(AnnotationRetention.BINARY)\n@Target(CLASS, PROPERTY, FUNCTION, FILE)\n@SinceKotlin(\"1.3\")\npublic actual annotation class JsExport {\n /*\n * The annotation prevents exporting the annotated member of an exported class.\n * This annotation is experimental, meaning that the restrictions mentioned above are subject to change.\n */\n @ExperimentalJsExport\n @Retention(AnnotationRetention.BINARY)\n @Target(CLASS, PROPERTY, FUNCTION, CONSTRUCTOR)\n @SinceKotlin(\"1.8\")\n public actual annotation class Ignore\n}\n\n\n/**\n * Forces a top-level property to be initialized eagerly, opposed to lazily on the first access to file and/or property.\n */\n@ExperimentalStdlibApi\n@Retention(AnnotationRetention.BINARY)\n@Target(AnnotationTarget.PROPERTY)\n@SinceKotlin(\"1.6\")\n@Deprecated(\"This annotation is a temporal migration assistance and may be removed in the future releases, please consider filing an issue about the case where it is needed\")\npublic annotation class EagerInitialization\n\n\n/**\n * When placed on an external interface or class, requires all its child\n * interfaces, classes, and objects to be external as well.\n *\n * The compiler mangles identifiers of functions and properties from non-external interfaces and classes,\n * and doesn't mangle from external ones. Requiring external interfaces and classes inheritors being external\n * is necessary to avoid non-obvious bugs when identifier naming in an inheritor doesn't correspond to\n * naming in the base class or interface.\n *\n * Example:\n *\n * ```kotlin\n * // From kotlin-wrappers\n * external interface Props {\n * var key: Key?\n * }\n *\n * // User code\n * @OptIn(ExperimentalStdlibApi::class)\n * @JsExternalInheritorsOnly\n * external interface LayoutProps : Props {\n * var layout: Layout?\n * }\n *\n * external interface ComponentProps : LayoutProps // OK\n *\n * external interface ComponentA : ComponentProps // OK\n *\n * interface ComponentB : ComponentProps // Compilation error!\n * ```\n *\n * This annotation is experimental, meaning that the restrictions mentioned above are subject to change.\n */\n@ExperimentalStdlibApi\n@Retention(AnnotationRetention.BINARY)\n@Target(CLASS)\n@SinceKotlin(\"1.9\")\npublic annotation class JsExternalInheritorsOnly\n\n\n/**\n * When placed on a function parameter, requires the type of the passed argument to be external.\n *\n * The compiler mangles identifiers of properties from non-external interfaces and classes,\n * and doesn't mangle from external ones. Requiring a type of the passing argument being external is necessary\n * to avoid non-obvious bugs when identifier has an unstable and unpredictable name in generated JS code.\n *\n * Example:\n *\n * ```kotlin\n *\n * @OptIn(ExperimentalStdlibApi::class)\n * fun extractUuid(@JsExternalArgument x: dynamic) = x.uuid as String\n *\n * external interface User {\n * val uuid: String\n * }\n *\n * interface Owner {\n * val uuid: String\n * }\n *\n * fun checkUser(user: User, owner: Owner): Boolean {\n * val userUuid = extractUuid(user) // OK\n * val ownerUuid = extractUuid(owner) // Compilation error! Possible bug\n * return userUuid == ownerUuid\n * }\n * ```\n *\n * This annotation is experimental, meaning that the restrictions mentioned above are subject to change.\n */\n@ExperimentalStdlibApi\n@Retention(AnnotationRetention.BINARY)\n@Target(VALUE_PARAMETER)\n@SinceKotlin(\"1.9\")\npublic annotation class JsExternalArgument\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.jvm\n\n// these are used in common generated code in stdlib\n\n@Target(AnnotationTarget.FIELD)\n@Retention(AnnotationRetention.SOURCE)\n@Deprecated(\"This annotation has no effect in Kotlin/JS. Use kotlin.concurrent.Volatile annotation in multiplatform code instead.\", ReplaceWith(\"kotlin.concurrent.Volatile\", \"kotlin.concurrent.Volatile\"))\n@DeprecatedSinceKotlin(warningSince = \"1.9\")\npublic actual annotation class Volatile\n\n@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)\n@Retention(AnnotationRetention.SOURCE)\n@Deprecated(\"Synchronizing methods on a class instance is not supported on platforms other than JVM. If you need to annotate a common method as JVM-synchronized, introduce your own optional-expectation annotation and actualize it with a typealias to kotlin.jvm.Synchronized.\")\n@DeprecatedSinceKotlin(warningSince = \"1.8\")\npublic actual annotation class Synchronized\n","/*\n * Copyright 2010-2020 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 in 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 checkIsMutable()\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 checkIsMutable()\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 {\n checkIsMutable()\n return (this as MutableIterable).removeAll { it in elements }\n }\n\n actual override fun retainAll(elements: Collection): Boolean {\n checkIsMutable()\n return (this as MutableIterable).removeAll { it !in elements }\n }\n\n actual override fun clear(): Unit {\n checkIsMutable()\n val iterator = this.iterator()\n while (iterator.hasNext()) {\n iterator.next()\n iterator.remove()\n }\n }\n\n @Deprecated(\"Provided so that subclasses inherit this function\", level = DeprecationLevel.HIDDEN)\n @JsName(\"toJSON\")\n protected fun toJSON(): Any = this.toArray()\n\n\n /**\n * This method is called every time when a mutating method is called on this mutable collection.\n * Mutable collections that are built (frozen) must throw `UnsupportedOperationException`.\n */\n internal open fun checkIsMutable(): Unit { }\n}\n\n","/*\n * Copyright 2010-2020 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 * 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 in 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 checkIsMutable()\n add(size, element)\n return true\n }\n\n actual override fun addAll(index: Int, elements: Collection): Boolean {\n AbstractList.checkPositionIndex(index, size)\n\n checkIsMutable()\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 checkIsMutable()\n removeRange(0, size)\n }\n\n actual override fun removeAll(elements: Collection): Boolean {\n checkIsMutable()\n return removeAll { it in elements }\n }\n\n actual override fun retainAll(elements: Collection): Boolean {\n checkIsMutable()\n return removeAll { it !in elements }\n }\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 set(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 internal override fun checkIsMutable(): Unit = list.checkIsMutable()\n }\n\n}\n","/*\n * Copyright 2010-2020 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 * 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 in its key type.\n * @param V the type of map values. The map is invariant in 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 // Should check if the map containing this entry is mutable.\n // However, to not increase entry memory footprint it might be worthwhile not to check it here and\n // force subclasses that implement `build()` (freezing) operation to implement their own `MutableEntry`.\n// this@AbstractMutableMap.checkIsMutable()\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 // intermediate abstract class to workaround KT-43321\n internal abstract class AbstractEntrySet, K, V> : AbstractMutableSet() {\n final override fun contains(element: E): Boolean = containsEntry(element)\n abstract fun containsEntry(element: Map.Entry): Boolean\n final override fun remove(element: E): Boolean = removeEntry(element)\n abstract fun removeEntry(element: Map.Entry): Boolean\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 checkIsMutable()\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 override fun checkIsMutable(): Unit = this@AbstractMutableMap.checkIsMutable()\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 checkIsMutable()\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 override fun checkIsMutable(): Unit = this@AbstractMutableMap.checkIsMutable()\n }\n }\n return _values!!\n }\n\n actual override fun remove(key: K): V? {\n checkIsMutable()\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 * This method is called every time when a mutating method is called on this mutable map.\n * Mutable maps that are built (frozen) must throw `UnsupportedOperationException`.\n */\n internal open fun checkIsMutable(): Unit {}\n}\n","/*\n * Copyright 2010-2020 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 in 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-2023 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 private companion object {\n private val Empty = ArrayList(0).also { it.isReadOnly = true }\n }\n\n private var isReadOnly: Boolean = false\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 public actual constructor(initialCapacity: Int) : 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 @PublishedApi\n internal fun build(): List {\n checkIsMutable()\n isReadOnly = true\n return if (size > 0) this else Empty\n }\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 checkIsMutable()\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 checkIsMutable()\n array.asDynamic().push(element)\n modCount++\n return true\n }\n\n actual override fun add(index: Int, element: E): Unit {\n checkIsMutable()\n array.asDynamic().splice(insertionRangeCheck(index), 0, element)\n modCount++\n }\n\n private fun increaseLength(amount: Int): Int {\n val previous = size\n array.asDynamic().length = size + amount\n return previous\n }\n\n actual override fun addAll(elements: Collection): Boolean {\n checkIsMutable()\n if (elements.isEmpty()) return false\n\n val offset = increaseLength(elements.size)\n elements.forEachIndexed { index, element ->\n array[offset + index] = element\n }\n modCount++\n return true\n }\n\n actual override fun addAll(index: Int, elements: Collection): Boolean {\n checkIsMutable()\n insertionRangeCheck(index)\n\n if (index == size) return addAll(elements)\n if (elements.isEmpty()) return false\n\n val tail = array.asDynamic().splice(index).unsafeCast>()\n addAll(elements)\n\n val offset = increaseLength(tail.size)\n repeat(tail.size) { tailIndex ->\n array[offset + tailIndex] = tail[tailIndex]\n }\n\n modCount++\n return true\n }\n\n actual override fun removeAt(index: Int): E {\n checkIsMutable()\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 checkIsMutable()\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 checkIsMutable()\n modCount++\n array.asDynamic().splice(fromIndex, toIndex - fromIndex)\n }\n\n actual override fun clear() {\n checkIsMutable()\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\n @Suppress(\"UNCHECKED_CAST\")\n override fun toArray(array: Array): Array {\n if (array.size < size) {\n return toArray() as Array\n }\n\n (this.array as Array).copyInto(array)\n\n if (array.size > size) {\n array[size] = null as T // null-terminate\n }\n\n return array\n }\n\n override fun toArray(): Array {\n return js(\"[]\").slice.call(array)\n }\n\n\n internal override fun checkIsMutable() {\n if (isReadOnly) throw UnsupportedOperationException()\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 sortArrayWith(array: Array, fromIndex: Int, toIndex: Int, comparator: Comparator) {\n if (fromIndex < toIndex - 1) {\n mergeSort(array.unsafeCast>(), fromIndex, toIndex - 1, 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 for (i in start..endInclusive) array[i] = result[i]\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 Unit // TODO: Fix KT-31506\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@OptIn(ExperimentalUnsignedTypes::class)\n@SinceKotlin(\"1.3\")\n@kotlin.js.JsName(\"contentDeepHashCodeImpl\")\ninternal fun Array?.contentDeepHashCodeImpl(): Int {\n if (this == null) return 0\n var result = 1\n for (element in this) {\n val elementHash = when {\n element == null -> 0\n 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-2020 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 * 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 */\n// Classes that extend HashMap and implement `build()` (freezing) operation\n// have to make sure mutating methods check `checkIsMutable`.\npublic actual open class HashMap : AbstractMutableMap, MutableMap {\n\n private inner class EntrySet : AbstractEntrySet, K, V>() {\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 fun containsEntry(element: Map.Entry): Boolean = this@HashMap.containsEntry(element)\n\n override operator fun iterator(): MutableIterator> = internalMap.iterator()\n\n override fun removeEntry(element: Map.Entry): 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 actual constructor(initialCapacity: Int, loadFactor: Float) : 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 internal 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","/*\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 */\n// Classes that extend HashSet and implement `build()` (freezing) operation\n// have to make sure mutating methods check `checkIsMutable`.\npublic actual open class HashSet : AbstractMutableSet, MutableSet {\n\n internal 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 actual constructor(initialCapacity: Int, loadFactor: Float) {\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-2023 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 * 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 private companion object {\n private val Empty = LinkedHashMap(0).also { it.isReadOnly = true }\n }\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 inner class ChainEntry(key: K, value: V) : AbstractMutableMap.SimpleEntry(key, value) {\n internal var next: ChainEntry? = null\n internal var prev: ChainEntry? = null\n\n override fun setValue(newValue: V): V {\n this@LinkedHashMap.checkIsMutable()\n return super.setValue(newValue)\n }\n }\n\n private inner class EntrySet : AbstractEntrySet, K, V>() {\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 this@EntrySet.checkIsMutable()\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 fun containsEntry(element: Map.Entry): Boolean = this@LinkedHashMap.containsEntry(element)\n\n override operator fun iterator(): MutableIterator> = EntryIterator()\n\n override fun removeEntry(element: Map.Entry): Boolean {\n checkIsMutable()\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 override fun checkIsMutable(): Unit = this@LinkedHashMap.checkIsMutable()\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 private var isReadOnly: Boolean = false\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 actual constructor(initialCapacity: Int, loadFactor: Float) : 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 @PublishedApi\n internal fun build(): Map {\n checkIsMutable()\n isReadOnly = true\n @Suppress(\"UNCHECKED_CAST\")\n return if (size > 0) this else (Empty as Map)\n }\n\n actual override fun clear() {\n checkIsMutable()\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 internal 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 checkIsMutable()\n\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 checkIsMutable()\n\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 internal override fun checkIsMutable() {\n if (isReadOnly) throw UnsupportedOperationException()\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","/*\n * Copyright 2010-2023 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 private companion object {\n private val Empty = LinkedHashSet(0).also {\n (it.map as LinkedHashMap).build()\n }\n }\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 actual constructor(initialCapacity: Int, loadFactor: Float) : super(LinkedHashMap(initialCapacity, loadFactor))\n\n actual constructor(initialCapacity: Int) : this(initialCapacity, 0.0f)\n\n @PublishedApi\n internal fun build(): Set {\n (map as LinkedHashMap).build()\n return if (size > 0) this else Empty\n }\n\n internal override fun checkIsMutable(): Unit = map.checkIsMutable()\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-2020 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@DeprecatedSinceKotlin(warningSince = \"1.6\", errorSince = \"1.9\")\n@Deprecated(\"Synchronization on any object is not supported in Kotlin/JS\", ReplaceWith(\"run(block)\"))\n@kotlin.internal.InlineOnly\n@Suppress(\"UNUSED_PARAMETER\")\npublic 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.nativeLastIndexOf(\"\\n\", 0)\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@SinceKotlin(\"1.6\")\npublic actual fun readln(): String = throw UnsupportedOperationException(\"readln is not supported in Kotlin/JS\")\n\n@SinceKotlin(\"1.6\")\npublic actual fun readlnOrNull(): String? = throw UnsupportedOperationException(\"readlnOrNull is not supported in Kotlin/JS\")","/*\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-2020 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.cancellation\n\n@SinceKotlin(\"1.4\")\npublic actual open class CancellationException : IllegalStateException {\n actual constructor() : super()\n actual constructor(message: String?) : super(message)\n constructor(message: String?, cause: Throwable?) : super(message, cause)\n constructor(cause: Throwable?) : super(cause)\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-2020 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.Document\nimport org.w3c.dom.Element\nimport kotlin.internal.LowPriorityInOverloadResolution\nimport kotlinx.dom.appendElement as newAppendElement\nimport kotlinx.dom.createElement as newCreateElement\n\n/**\n * Creates a new element with the specified [name].\n *\n * The element is initialized with the specified [init] function.\n */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.createElement' instead.\",\n replaceWith = ReplaceWith(\"this.createElement(name, init)\", \"kotlinx.dom.createElement\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\npublic inline fun Document.createElement(name: String, noinline init: Element.() -> Unit): Element = this.newCreateElement(name, init)\n\n/**\n * Appends a newly created element with the specified [name] to this element.\n *\n * The element is initialized with the specified [init] function.\n */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.appendElement' instead.\",\n replaceWith = ReplaceWith(\"this.appendElement(name, init)\", \"kotlinx.dom.appendElement\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\npublic inline fun Element.appendElement(name: String, noinline init: Element.() -> Unit): Element = this.newAppendElement(name, init)\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.Element\nimport kotlin.internal.LowPriorityInOverloadResolution\nimport kotlinx.dom.addClass as newAddClass\nimport kotlinx.dom.hasClass as newHasClass\nimport kotlinx.dom.removeClass as newRemoveClass\n\n/** Returns true if the element has the given CSS class style in its 'class' attribute */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.hasClass' instead.\",\n replaceWith = ReplaceWith(\"this.hasClass(cssClass)\", \"kotlinx.dom.hasClass\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\ninline fun Element.hasClass(cssClass: String): Boolean = this.newHasClass(cssClass)\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 */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.addClass' instead.\",\n replaceWith = ReplaceWith(\"this.addClass(cssClasses)\", \"kotlinx.dom.addClass\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\ninline fun Element.addClass(vararg cssClasses: String): Boolean = this.newAddClass(*cssClasses)\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 */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.removeClass' instead.\",\n replaceWith = ReplaceWith(\"this.removeClass(cssClasses)\", \"kotlinx.dom.removeClass\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\ninline fun Element.removeClass(vararg cssClasses: String): Boolean = this.newRemoveClass(*cssClasses)","/*\n * Copyright 2010-2022 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.Element\nimport org.w3c.dom.Node\nimport kotlin.internal.LowPriorityInOverloadResolution\nimport kotlinx.dom.isElement as newIsElement\nimport kotlinx.dom.isText as newIsText\n\n/**\n * Gets a value indicating whether this node is a TEXT_NODE or a CDATA_SECTION_NODE.\n */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.isText' instead.\",\n replaceWith = ReplaceWith(\"this.isText\", \"kotlinx.dom.isText\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\npublic val Node.isText: Boolean\n inline get() = this.newIsText\n\n/**\n * Gets a value indicating whether this node is an [Element].\n */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.isElement' instead.\",\n replaceWith = ReplaceWith(\"this.isElement\", \"kotlinx.dom.isElement\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\npublic val Node.isElement: Boolean\n inline get() = this.newIsElement\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.Element\nimport org.w3c.dom.Node\nimport kotlin.internal.LowPriorityInOverloadResolution\nimport kotlinx.dom.appendText as newAppendText\nimport kotlinx.dom.clear as newClear\n\n/** Removes all the children from this node. */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.clear' instead.\",\n replaceWith = ReplaceWith(\"this.clear()\", \"kotlinx.dom.clear\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\npublic inline fun Node.clear() = this.newClear()\n\n/**\n * Creates text node and append it to the element.\n *\n * @return this element\n */\n@LowPriorityInOverloadResolution\n@Deprecated(\n message = \"This API is moved to another package, use 'kotlinx.dom.appendText' instead.\",\n replaceWith = ReplaceWith(\"this.appendText(text)\", \"kotlinx.dom.appendText\")\n)\n@DeprecatedSinceKotlin(warningSince = \"1.4\", errorSince = \"1.6\")\ninline fun Element.appendText(text: String): Element = this.newAppendText(text)\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 isArrayish(r) ->\n r.unsafeCast>().iterator()\n\n else ->\n (r as Iterable<*>).iterator()\n }\n}\n","/*\n * Copyright 2010-2022 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.enums\n\n// Unused stub\ninternal actual class EnumEntriesSerializationProxy> actual constructor(entries: 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\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 */\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 elements in the group.\n *\n * @sample samples.collections.Grouping.groupingByEachCount\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\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-2021 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@Retention(AnnotationRetention.BINARY)\n@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)\ninternal annotation class JsPolyfill(val implementation: String)\n","/*\n * Copyright 2010-2023 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.encoding\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\n@kotlin.internal.InlineOnly\ninternal actual inline fun Base64.platformCharsToBytes(source: CharSequence, startIndex: Int, endIndex: Int): ByteArray {\n return charsToBytesImpl(source, startIndex, endIndex)\n}\n\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\n@kotlin.internal.InlineOnly\ninternal actual inline fun Base64.platformEncodeToString(source: ByteArray, startIndex: Int, endIndex: Int): String {\n val byteResult = encodeToByteArrayImpl(source, startIndex, endIndex)\n return bytesToStringImpl(byteResult)\n}\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\n@kotlin.internal.InlineOnly\ninternal actual inline fun Base64.platformEncodeIntoByteArray(\n source: ByteArray,\n destination: ByteArray,\n destinationOffset: Int,\n startIndex: Int,\n endIndex: Int\n): Int {\n return encodeIntoByteArrayImpl(source, destination, destinationOffset, startIndex, endIndex)\n}\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\n@kotlin.internal.InlineOnly\ninternal actual inline fun Base64.platformEncodeToByteArray(\n source: ByteArray,\n startIndex: Int,\n endIndex: Int\n): ByteArray {\n return encodeToByteArrayImpl(source, startIndex, endIndex)\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-2022 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.math\n\n\nimport kotlin.internal.InlineOnly\nimport kotlin.js.JsMath 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 = nativeSinh(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 = nativeCosh(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 = nativeTanh(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 = nativeAsinh(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 = nativeAcosh(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 = nativeAtanh(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 = nativeHypot(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 = nativeExpm1(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 = nativeLog10(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 = nativeLog2(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 = nativeLog1p(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)\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)\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 = nativeTrunc(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)\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 = nativeSign(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\n/**\n * Returns the cube root of [x]. For any `x`, `cbrt(-x) == -cbrt(x)`;\n * that is, the cube root of a negative value is the negative of the cube root\n * of that value's magnitude. Special cases:\n *\n * Special cases:\n * - If the argument is `NaN`, then the result is `NaN`.\n * - If the argument is infinite, then the result is an infinity with the same sign as the argument.\n * - If the argument is zero, then the result is a zero with the same sign as the argument.\n */\n@SinceKotlin(\"1.8\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@InlineOnly\npublic actual inline fun cbrt(x: Double): Double = nativeMath.cbrt(x)\n\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() = nativeSign(this)\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).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).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 = nativeSinh(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 = nativeCosh(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 = nativeTanh(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 = nativeAsinh(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 = nativeAcosh(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 = nativeAtanh(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 = nativeHypot(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 = nativeExpm1(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 = nativeLog10(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 = nativeLog2(x.toDouble()).toFloat()\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: Float): Float = nativeLog1p(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 = nativeSign(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\n/**\n * Returns the cube root of [x]. For any `x`, `cbrt(-x) == -cbrt(x)`;\n * that is, the cube root of a negative value is the negative of the cube root\n * of that value's magnitude. Special cases:\n *\n * Special cases:\n * - If the argument is `NaN`, then the result is `NaN`.\n * - If the argument is infinite, then the result is an infinity with the same sign as the argument.\n * - If the argument is zero, then the result is a zero with the same sign as the argument.\n */\n@SinceKotlin(\"1.8\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@InlineOnly\npublic actual inline fun cbrt(x: Float): Float = nativeMath.cbrt(x.toDouble()).toFloat()\n\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() = nativeSign(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-2021 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/**\n * Counts the number of set bits in the binary representation of this [Int] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Int.countOneBits(): Int {\n // Hacker's Delight 5-1 algorithm\n var v = this\n v = (v and 0x55555555) + (v.ushr(1) and 0x55555555)\n v = (v and 0x33333333) + (v.ushr(2) and 0x33333333)\n v = (v and 0x0F0F0F0F) + (v.ushr(4) and 0x0F0F0F0F)\n v = (v and 0x00FF00FF) + (v.ushr(8) and 0x00FF00FF)\n v = (v and 0x0000FFFF) + (v.ushr(16))\n return v\n}\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Int] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic actual inline fun Int.countLeadingZeroBits(): Int = nativeClz32(this)\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Int] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Int.countTrailingZeroBits(): Int =\n // Hacker's Delight 5-4 algorithm for expressing countTrailingZeroBits with countLeadingZeroBits\n Int.SIZE_BITS - (this or -this).inv().countLeadingZeroBits()\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [Int] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Int.takeHighestOneBit(): Int =\n if (this == 0) 0 else 1.shl(Int.SIZE_BITS - 1 - countLeadingZeroBits())\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [Int] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Int.takeLowestOneBit(): Int =\n // Hacker's Delight 2-1 algorithm for isolating rightmost 1-bit\n this and -this\n\n/**\n * Rotates the binary representation of this [Int] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [Int.SIZE_BITS] (32) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 32)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Int.rotateLeft(bitCount: Int): Int =\n shl(bitCount) or ushr(Int.SIZE_BITS - bitCount)\n\n\n/**\n * Rotates the binary representation of this [Int] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [Int.SIZE_BITS] (32) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 32)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Int.rotateRight(bitCount: Int): Int =\n shl(Int.SIZE_BITS - bitCount) or ushr(bitCount)\n\n\n/**\n * Counts the number of set bits in the binary representation of this [Long] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Long.countOneBits(): Int =\n high.countOneBits() + low.countOneBits()\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Long] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Long.countLeadingZeroBits(): Int =\n when (val high = this.high) {\n 0 -> Int.SIZE_BITS + low.countLeadingZeroBits()\n else -> high.countLeadingZeroBits()\n }\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Long] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Long.countTrailingZeroBits(): Int =\n when (val low = this.low) {\n 0 -> Int.SIZE_BITS + high.countTrailingZeroBits()\n else -> low.countTrailingZeroBits()\n }\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [Long] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Long.takeHighestOneBit(): Long =\n when (val high = this.high) {\n 0 -> Long(low.takeHighestOneBit(), 0)\n else -> Long(0, high.takeHighestOneBit())\n }\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [Long] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Long.takeLowestOneBit(): Long =\n when (val low = this.low) {\n 0 -> Long(0, high.takeLowestOneBit())\n else -> Long(low.takeLowestOneBit(), 0)\n }\n\n/**\n * Rotates the binary representation of this [Long] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [Long.SIZE_BITS] (64) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 64)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual fun Long.rotateLeft(bitCount: Int): Long {\n if ((bitCount and 31) != 0) {\n val low = this.low\n val high = this.high\n val newLow = low.shl(bitCount) or high.ushr(-bitCount)\n val newHigh = high.shl(bitCount) or low.ushr(-bitCount)\n return if ((bitCount and 32) == 0) Long(newLow, newHigh) else Long(newHigh, newLow)\n } else {\n return if ((bitCount and 32) == 0) this else Long(high, low)\n }\n}\n\n\n/**\n * Rotates the binary representation of this [Long] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [Long.SIZE_BITS] (64) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 64)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic actual inline fun Long.rotateRight(bitCount: Int): Long = rotateLeft(-bitCount)\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.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 public open fun finally(onFinally: () -> Unit): 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\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-2020 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\nimport findAssociatedObject\n\n/**\n * The experimental marker for associated objects API.\n *\n * Any usage of a declaration annotated with `@ExperimentalAssociatedObjects` must be accepted either by\n * annotating that usage with the [OptIn] annotation, e.g. `@OptIn(ExperimentalAssociatedObjects::class)`,\n * or by using the compiler argument `-opt-in=kotlin.reflect.ExperimentalAssociatedObjects`.\n */\n@RequiresOptIn(level = RequiresOptIn.Level.ERROR)\n@Retention(value = AnnotationRetention.BINARY)\npublic annotation class ExperimentalAssociatedObjects\n\n/**\n * Makes the annotated annotation class an associated object key.\n *\n * An associated object key annotation should have single [KClass] parameter.\n * When applied to a class with reference to an object declaration as an argument, it binds\n * the object to the class, making this binding discoverable at runtime using [findAssociatedObject].\n */\n@ExperimentalAssociatedObjects\n@Retention(AnnotationRetention.BINARY)\n@Target(AnnotationTarget.ANNOTATION_CLASS)\npublic annotation class AssociatedObjectKey\n\n/**\n * If [T] is an @[AssociatedObjectKey]-annotated annotation class and [this] class is annotated with @[T] (`S::class`),\n * returns object `S`.\n *\n * Otherwise returns `null`.\n */\n@ExperimentalAssociatedObjects\npublic inline fun KClass<*>.findAssociatedObject(): Any? =\n this.findAssociatedObject(T::class)","/*\n * Copyright 2010-2020 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/**\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-2020 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\n override val qualifiedName: String?\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\ninternal class ErrorKClass : KClass {\n override val simpleName: String? get() = error(\"Unknown simpleName for ErrorKClass\")\n override val qualifiedName: String? get() = error(\"Unknown qualifiedName for ErrorKClass\")\n\n override fun isInstance(value: Any?): Boolean = error(\"Can's check isInstance on ErrorKClass\")\n\n override fun equals(other: Any?): Boolean = other === this\n\n override fun hashCode(): Int = 0\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\ninternal actual inline val KClass<*>.qualifiedOrSimpleName: String?\n get() = simpleName","/*\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// TODO: Remove once JsReflectionAPICallChecker supports more reflection types\n@file:Suppress(\"Unsupported\")\n\nimport kotlin.reflect.*\nimport kotlin.reflect.js.internal.*\n\n@JsName(\"createKType\")\ninternal fun createKType(\n classifier: KClassifier,\n arguments: Array,\n isMarkedNullable: Boolean\n) =\n KTypeImpl(classifier, arguments.asList(), isMarkedNullable)\n\n@JsName(\"createDynamicKType\")\ninternal fun createDynamicKType(): KType = DynamicKType\n\n@JsName(\"markKTypeNullable\")\ninternal fun markKTypeNullable(kType: KType) = KTypeImpl(kType.classifier!!, kType.arguments, true)\n\n@JsName(\"createKTypeParameter\")\ninternal fun createKTypeParameter(\n name: String,\n upperBounds: Array,\n variance: String\n): KTypeParameter {\n val kVariance = when (variance) {\n \"in\" -> KVariance.IN\n \"out\" -> KVariance.OUT\n else -> KVariance.INVARIANT\n }\n\n return KTypeParameterImpl(name, upperBounds.asList(), kVariance, false)\n}\n\n@JsName(\"getStarKTypeProjection\")\ninternal fun getStarKTypeProjection(): KTypeProjection =\n KTypeProjection.STAR\n\n@JsName(\"createCovariantKTypeProjection\")\ninternal fun createCovariantKTypeProjection(type: KType): KTypeProjection =\n KTypeProjection.covariant(type)\n\n@JsName(\"createInvariantKTypeProjection\")\ninternal fun createInvariantKTypeProjection(type: KType): KTypeProjection =\n KTypeProjection.invariant(type)\n\n@JsName(\"createContravariantKTypeProjection\")\ninternal fun createContravariantKTypeProjection(type: KType): KTypeProjection =\n KTypeProjection.contravariant(type)\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.js.internal\n\nimport kotlin.reflect.*\n\ninternal class KTypeImpl(\n override val classifier: KClassifier,\n override val arguments: List,\n override val isMarkedNullable: Boolean\n) : KType {\n override fun equals(other: Any?): Boolean =\n other is KTypeImpl &&\n classifier == other.classifier && arguments == other.arguments && isMarkedNullable == other.isMarkedNullable\n\n override fun hashCode(): Int =\n (classifier.hashCode() * 31 + arguments.hashCode()) * 31 + isMarkedNullable.hashCode()\n\n override fun toString(): String {\n val kClass = (classifier as? KClass<*>)\n val classifierName = when {\n kClass == null -> classifier.toString()\n kClass.simpleName != null -> kClass.simpleName\n else -> \"(non-denotable type)\"\n }\n\n val args =\n if (arguments.isEmpty()) \"\"\n else arguments.joinToString(\", \", \"<\", \">\")\n val nullable = if (isMarkedNullable) \"?\" else \"\"\n\n return classifierName + args + nullable\n }\n}\n\ninternal object DynamicKType : KType {\n override val classifier: KClassifier? = null\n override val arguments: List = emptyList()\n override val isMarkedNullable: Boolean = false\n override fun toString(): String = \"dynamic\"\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.js.internal\n\nimport kotlin.reflect.*\n\ninternal data class KTypeParameterImpl(\n override val name: String,\n override val upperBounds: List,\n override val variance: KVariance,\n override val isReified: Boolean\n) : KTypeParameter {\n override fun toString(): String = name\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-2020 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.*\nimport kotlin.reflect.js.internal.*\n\n@JsName(\"getKClass\")\ninternal fun getKClass(jClass: Any /* JsClass | Array> */): KClass {\n return if (js(\"Array\").isArray(jClass)) {\n getKClassM(jClass.unsafeCast>>())\n } else {\n getKClass1(jClass.unsafeCast>())\n }\n}\n\n@JsName(\"getKClassM\")\ninternal fun getKClassM(jClasses: Array>): KClass = when (jClasses.size) {\n 1 -> getKClass1(jClasses[0])\n 0 -> NothingKClassImpl.unsafeCast>()\n else -> ErrorKClass().unsafeCast>()\n}\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 getKClass1(jsClass)\n }\n }\n }\n }\n }\n }.unsafeCast>()\n\n@JsName(\"getKClass1\")\ninternal fun getKClass1(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 * 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-2020 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@SinceKotlin(\"1.5\")\npublic actual enum class CharCategory(internal val value: Int, public actual val code: String) {\n /**\n * General category \"Cn\" in the Unicode specification.\n */\n UNASSIGNED(0, \"Cn\"),\n\n /**\n * General category \"Lu\" in the Unicode specification.\n */\n UPPERCASE_LETTER(1, \"Lu\"),\n\n /**\n * General category \"Ll\" in the Unicode specification.\n */\n LOWERCASE_LETTER(2, \"Ll\"),\n\n /**\n * General category \"Lt\" in the Unicode specification.\n */\n TITLECASE_LETTER(3, \"Lt\"),\n\n /**\n * General category \"Lm\" in the Unicode specification.\n */\n MODIFIER_LETTER(4, \"Lm\"),\n\n /**\n * General category \"Lo\" in the Unicode specification.\n */\n OTHER_LETTER(5, \"Lo\"),\n\n /**\n * General category \"Mn\" in the Unicode specification.\n */\n NON_SPACING_MARK(6, \"Mn\"),\n\n /**\n * General category \"Me\" in the Unicode specification.\n */\n ENCLOSING_MARK(7, \"Me\"),\n\n /**\n * General category \"Mc\" in the Unicode specification.\n */\n COMBINING_SPACING_MARK(8, \"Mc\"),\n\n /**\n * General category \"Nd\" in the Unicode specification.\n */\n DECIMAL_DIGIT_NUMBER(9, \"Nd\"),\n\n /**\n * General category \"Nl\" in the Unicode specification.\n */\n LETTER_NUMBER(10, \"Nl\"),\n\n /**\n * General category \"No\" in the Unicode specification.\n */\n OTHER_NUMBER(11, \"No\"),\n\n /**\n * General category \"Zs\" in the Unicode specification.\n */\n SPACE_SEPARATOR(12, \"Zs\"),\n\n /**\n * General category \"Zl\" in the Unicode specification.\n */\n LINE_SEPARATOR(13, \"Zl\"),\n\n /**\n * General category \"Zp\" in the Unicode specification.\n */\n PARAGRAPH_SEPARATOR(14, \"Zp\"),\n\n /**\n * General category \"Cc\" in the Unicode specification.\n */\n CONTROL(15, \"Cc\"),\n\n /**\n * General category \"Cf\" in the Unicode specification.\n */\n FORMAT(16, \"Cf\"),\n\n /**\n * General category \"Co\" in the Unicode specification.\n */\n PRIVATE_USE(18, \"Co\"),\n\n /**\n * General category \"Cs\" in the Unicode specification.\n */\n SURROGATE(19, \"Cs\"),\n\n /**\n * General category \"Pd\" in the Unicode specification.\n */\n DASH_PUNCTUATION(20, \"Pd\"),\n\n /**\n * General category \"Ps\" in the Unicode specification.\n */\n START_PUNCTUATION(21, \"Ps\"),\n\n /**\n * General category \"Pe\" in the Unicode specification.\n */\n END_PUNCTUATION(22, \"Pe\"),\n\n /**\n * General category \"Pc\" in the Unicode specification.\n */\n CONNECTOR_PUNCTUATION(23, \"Pc\"),\n\n /**\n * General category \"Po\" in the Unicode specification.\n */\n OTHER_PUNCTUATION(24, \"Po\"),\n\n /**\n * General category \"Sm\" in the Unicode specification.\n */\n MATH_SYMBOL(25, \"Sm\"),\n\n /**\n * General category \"Sc\" in the Unicode specification.\n */\n CURRENCY_SYMBOL(26, \"Sc\"),\n\n /**\n * General category \"Sk\" in the Unicode specification.\n */\n MODIFIER_SYMBOL(27, \"Sk\"),\n\n /**\n * General category \"So\" in the Unicode specification.\n */\n OTHER_SYMBOL(28, \"So\"),\n\n /**\n * General category \"Pi\" in the Unicode specification.\n */\n INITIAL_QUOTE_PUNCTUATION(29, \"Pi\"),\n\n /**\n * General category \"Pf\" in the Unicode specification.\n */\n FINAL_QUOTE_PUNCTUATION(30, \"Pf\");\n\n /**\n * Returns `true` if [char] character belongs to this category.\n */\n public actual operator fun contains(char: Char): Boolean = char.getCategoryValue() == this.value\n\n companion object {\n internal fun valueOf(category: Int): CharCategory =\n when (category) {\n in 0..16 -> values()[category]\n in 18..30 -> values()[category - 1]\n else -> throw IllegalArgumentException(\"Category #$category is not defined.\")\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 * The exception thrown when a character encoding or decoding error occurs.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic actual open class CharacterCodingException(message: String?) : Exception(message) {\n actual constructor() : this(null)\n}\n","/*\n * Copyright 2010-2020 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 * A mutable sequence of characters.\n *\n * String builder can be used to efficiently perform multiple string manipulation operations.\n */\npublic actual class StringBuilder actual constructor(content: String) : Appendable, CharSequence {\n /**\n * Constructs an empty string builder with the specified initial [capacity].\n *\n * In Kotlin/JS implementation of StringBuilder the initial capacity has no effect on the further performance of operations.\n */\n actual constructor(capacity: Int) : this() {\n }\n\n /** Constructs a string builder that contains the same characters as the specified [content] char sequence. */\n actual constructor(content: CharSequence) : this(content.toString()) {}\n\n /** Constructs an empty string builder. */\n actual constructor() : this(\"\")\n\n private var string: String = if (content !== undefined) content else \"\"\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(value: Char): StringBuilder {\n string += value\n return this\n }\n\n actual override fun append(value: CharSequence?): StringBuilder {\n string += value.toString()\n return this\n }\n\n actual override fun append(value: CharSequence?, startIndex: Int, endIndex: Int): StringBuilder =\n this.appendRange(value ?: \"null\", startIndex, endIndex)\n\n /**\n * Reverses the contents of this string builder and returns this instance.\n *\n * Surrogate pairs included in this string builder are treated as single characters.\n * Therefore, the order of the high-low surrogates is never reversed.\n *\n * Note that the reverse operation may produce new surrogate pairs that were unpaired low-surrogates and high-surrogates before the operation.\n * For example, reversing `\"\\uDC00\\uD800\"` produces `\"\\uD800\\uDC00\"` which is a valid surrogate pair.\n */\n actual fun reverse(): StringBuilder {\n var reversed = \"\"\n var index = string.length - 1\n while (index >= 0) {\n val low = string[index--]\n if (low.isLowSurrogate() && index >= 0) {\n val high = string[index--]\n if (high.isHighSurrogate()) {\n reversed = reversed + high + low\n } else {\n reversed = reversed + low + high\n }\n } else {\n reversed += low\n }\n }\n string = reversed\n return this\n }\n\n /**\n * Appends the string representation of the specified object [value] to this string builder and returns this instance.\n *\n * The overall effect is exactly as if the [value] were converted to a string by the `value.toString()` method,\n * and then that string was appended to this string builder.\n */\n actual fun append(value: Any?): StringBuilder {\n string += value.toString()\n return this\n }\n\n /**\n * Appends the string representation of the specified boolean [value] to this string builder and returns this instance.\n *\n * The overall effect is exactly as if the [value] were converted to a string by the `value.toString()` method,\n * and then that string was appended to this string builder.\n */\n @SinceKotlin(\"1.3\")\n actual fun append(value: Boolean): StringBuilder {\n string += value\n return this\n }\n\n /**\n * Appends characters in the specified character array [value] to this string builder and returns this instance.\n *\n * Characters are appended in order, starting at the index 0.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun append(value: CharArray): StringBuilder {\n string += value.concatToString()\n return this\n }\n\n /**\n * Appends the specified string [value] to this string builder and returns this instance.\n *\n * If [value] is `null`, then the four characters `\"null\"` are appended.\n */\n @SinceKotlin(\"1.3\")\n actual fun append(value: String?): StringBuilder {\n this.string += value ?: \"null\"\n return this\n }\n\n /**\n * Returns the current capacity of this string builder.\n *\n * The capacity is the maximum length this string builder can have before an allocation occurs.\n *\n * In Kotlin/JS implementation of StringBuilder the value returned from this method may not indicate the actual size of the backing storage.\n */\n @SinceKotlin(\"1.3\")\n// @ExperimentalStdlibApi\n @Deprecated(\"Obtaining StringBuilder capacity is not supported in JS and common code.\", level = DeprecationLevel.WARNING)\n actual fun capacity(): Int = length\n\n /**\n * Ensures that the capacity of this string builder is at least equal to the specified [minimumCapacity].\n *\n * If the current capacity is less than the [minimumCapacity], a new backing storage is allocated with greater capacity.\n * Otherwise, this method takes no action and simply returns.\n *\n * In Kotlin/JS implementation of StringBuilder the size of the backing storage is not extended to comply the given [minimumCapacity],\n * thus calling this method has no effect on the further performance of operations.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun ensureCapacity(minimumCapacity: Int) {\n }\n\n /**\n * Returns the index within this string builder of the first occurrence of the specified [string].\n *\n * Returns `-1` if the specified [string] does not occur in this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun indexOf(string: String): Int = this.string.asDynamic().indexOf(string)\n\n /**\n * Returns the index within this string builder of the first occurrence of the specified [string],\n * starting at the specified [startIndex].\n *\n * Returns `-1` if the specified [string] does not occur in this string builder starting at the specified [startIndex].\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun indexOf(string: String, startIndex: Int): Int = this.string.asDynamic().indexOf(string, startIndex)\n\n /**\n * Returns the index within this string builder of the last occurrence of the specified [string].\n * The last occurrence of empty string `\"\"` is considered to be at the index equal to `this.length`.\n *\n * Returns `-1` if the specified [string] does not occur in this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun lastIndexOf(string: String): Int = this.string.asDynamic().lastIndexOf(string)\n\n /**\n * Returns the index within this string builder of the last occurrence of the specified [string],\n * starting from the specified [startIndex] toward the beginning.\n *\n * Returns `-1` if the specified [string] does not occur in this string builder starting at the specified [startIndex].\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun lastIndexOf(string: String, startIndex: Int): Int {\n if (string.isEmpty() && startIndex < 0) return -1\n return this.string.asDynamic().lastIndexOf(string, startIndex)\n }\n\n /**\n * Inserts the string representation of the specified boolean [value] into this string builder at the specified [index] and returns this instance.\n *\n * The overall effect is exactly as if the [value] were converted to a string by the `value.toString()` method,\n * and then that string was inserted into this string builder at the specified [index].\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun insert(index: Int, value: Boolean): StringBuilder {\n AbstractList.checkPositionIndex(index, length)\n\n string = string.substring(0, index) + value + string.substring(index)\n return this\n }\n\n /**\n * Inserts the specified character [value] into this string builder at the specified [index] and returns this instance.\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun insert(index: Int, value: Char): StringBuilder {\n AbstractList.checkPositionIndex(index, length)\n\n string = string.substring(0, index) + value + string.substring(index)\n return this\n }\n\n /**\n * Inserts characters in the specified character array [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in same order as in the [value] character array, starting at [index].\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun insert(index: Int, value: CharArray): StringBuilder {\n AbstractList.checkPositionIndex(index, length)\n\n string = string.substring(0, index) + value.concatToString() + string.substring(index)\n return this\n }\n\n /**\n * Inserts characters in the specified character sequence [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in the same order as in the [value] character sequence, starting at [index].\n *\n * @param index the position in this string builder to insert at.\n * @param value the character sequence from which characters are inserted. If [value] is `null`, then the four characters `\"null\"` are inserted.\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun insert(index: Int, value: CharSequence?): StringBuilder {\n AbstractList.checkPositionIndex(index, length)\n\n string = string.substring(0, index) + value.toString() + string.substring(index)\n return this\n }\n\n /**\n * Inserts the string representation of the specified object [value] into this string builder at the specified [index] and returns this instance.\n *\n * The overall effect is exactly as if the [value] were converted to a string by the `value.toString()` method,\n * and then that string was inserted into this string builder at the specified [index].\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun insert(index: Int, value: Any?): StringBuilder {\n AbstractList.checkPositionIndex(index, length)\n\n string = string.substring(0, index) + value.toString() + string.substring(index)\n return this\n }\n\n /**\n * Inserts the string [value] into this string builder at the specified [index] and returns this instance.\n *\n * If [value] is `null`, then the four characters `\"null\"` are inserted.\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun insert(index: Int, value: String?): StringBuilder {\n AbstractList.checkPositionIndex(index, length)\n\n val toInsert = value ?: \"null\"\n this.string = this.string.substring(0, index) + toInsert + this.string.substring(index)\n return this\n }\n\n /**\n * Sets the length of this string builder to the specified [newLength].\n *\n * If the [newLength] is less than the current length, it is changed to the specified [newLength].\n * Otherwise, null characters '\\u0000' are appended to this string builder until its length is less than the [newLength].\n *\n * Note that in Kotlin/JS [set] operator function has non-constant execution time complexity.\n * Therefore, increasing length of this string builder and then updating each character by index may slow down your program.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] if [newLength] is less than zero.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun setLength(newLength: Int) {\n if (newLength < 0) {\n throw IllegalArgumentException(\"Negative new length: $newLength.\")\n }\n\n if (newLength <= length) {\n string = string.substring(0, newLength)\n } else {\n for (i in length until newLength) {\n string += '\\u0000'\n }\n }\n }\n\n /**\n * Returns a new [String] that contains characters in this string builder at [startIndex] (inclusive) and up to the [length] (exclusive).\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun substring(startIndex: Int): String {\n AbstractList.checkPositionIndex(startIndex, length)\n\n return string.substring(startIndex)\n }\n\n /**\n * Returns a new [String] that contains characters in this string builder at [startIndex] (inclusive) and up to the [endIndex] (exclusive).\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this string builder indices or when `startIndex > endIndex`.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun substring(startIndex: Int, endIndex: Int): String {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n\n return string.substring(startIndex, endIndex)\n }\n\n /**\n * Attempts to reduce storage used for this string builder.\n *\n * If the backing storage of this string builder is larger than necessary to hold its current contents,\n * then it may be resized to become more space efficient.\n * Calling this method may, but is not required to, affect the value of the [capacity] property.\n *\n * In Kotlin/JS implementation of StringBuilder the size of the backing storage is always equal to the length of the string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n actual fun trimToSize() {\n }\n\n override fun toString(): String = string\n\n /**\n * Clears the content of this string builder making it empty and returns this instance.\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 /**\n * Sets the character at the specified [index] to the specified [value].\n *\n * @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public operator fun set(index: Int, value: Char) {\n AbstractList.checkElementIndex(index, length)\n\n string = string.substring(0, index) + value + string.substring(index + 1)\n }\n\n /**\n * Replaces characters in the specified range of this string builder with characters in the specified string [value] and returns this instance.\n *\n * @param startIndex the beginning (inclusive) of the range to replace.\n * @param endIndex the end (exclusive) of the range to replace.\n * @param value the string to replace with.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] if [startIndex] is less than zero, greater than the length of this string builder, or `startIndex > endIndex`.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public fun setRange(startIndex: Int, endIndex: Int, value: String): StringBuilder {\n checkReplaceRange(startIndex, endIndex, length)\n\n this.string = this.string.substring(0, startIndex) + value + this.string.substring(endIndex)\n return this\n }\n\n private fun checkReplaceRange(startIndex: Int, endIndex: Int, length: Int) {\n if (startIndex < 0 || startIndex > length) {\n throw IndexOutOfBoundsException(\"startIndex: $startIndex, length: $length\")\n }\n if (startIndex > endIndex) {\n throw IllegalArgumentException(\"startIndex($startIndex) > endIndex($endIndex)\")\n }\n }\n\n /**\n * Removes the character at the specified [index] from this string builder and returns this instance.\n *\n * If the `Char` at the specified [index] is part of a supplementary code point, this method does not remove the entire supplementary character.\n *\n * @param index the index of `Char` to remove.\n *\n * @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public fun deleteAt(index: Int): StringBuilder {\n AbstractList.checkElementIndex(index, length)\n\n string = string.substring(0, index) + string.substring(index + 1)\n return this\n }\n\n /**\n * Removes characters in the specified range from this string builder and returns this instance.\n *\n * @param startIndex the beginning (inclusive) of the range to remove.\n * @param endIndex the end (exclusive) of the range to remove.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] is out of range of this string builder indices or when `startIndex > endIndex`.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public fun deleteRange(startIndex: Int, endIndex: Int): StringBuilder {\n checkReplaceRange(startIndex, endIndex, length)\n\n string = string.substring(0, startIndex) + string.substring(endIndex)\n return this\n }\n\n /**\n * Copies characters from this string builder into the [destination] character array.\n *\n * @param destination the array to copy to.\n * @param destinationOffset the position in the array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the range to copy, 0 by default.\n * @param endIndex the end (exclusive) of the range to copy, length of this string builder by default.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this string builder 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 @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public fun toCharArray(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = this.length) {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n AbstractList.checkBoundsIndexes(destinationOffset, destinationOffset + endIndex - startIndex, destination.size)\n\n var dstIndex = destinationOffset\n for (index in startIndex until endIndex) {\n destination[dstIndex++] = string[index]\n }\n }\n\n /**\n * Appends characters in a subarray of the specified character array [value] to this string builder and returns this instance.\n *\n * Characters are appended in order, starting at specified [startIndex].\n *\n * @param value the array from which characters are appended.\n * @param startIndex the beginning (inclusive) of the subarray to append.\n * @param endIndex the end (exclusive) of the subarray to append.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public fun appendRange(value: CharArray, startIndex: Int, endIndex: Int): StringBuilder {\n string += value.concatToString(startIndex, endIndex)\n return this\n }\n\n /**\n * Appends a subsequence of the specified character sequence [value] to this string builder and returns this instance.\n *\n * @param value the character sequence from which a subsequence is appended.\n * @param startIndex the beginning (inclusive) of the subsequence to append.\n * @param endIndex the end (exclusive) of the subsequence to append.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public fun appendRange(value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder {\n val stringCsq = value.toString()\n AbstractList.checkBoundsIndexes(startIndex, endIndex, stringCsq.length)\n\n string += stringCsq.substring(startIndex, endIndex)\n return this\n }\n\n /**\n * Inserts characters in a subarray of the specified character array [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in same order as in the [value] array, starting at [index].\n *\n * @param index the position in this string builder to insert at.\n * @param value the array from which characters are inserted.\n * @param startIndex the beginning (inclusive) of the subarray to insert.\n * @param endIndex the end (exclusive) of the subarray to insert.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public fun insertRange(index: Int, value: CharArray, startIndex: Int, endIndex: Int): StringBuilder {\n AbstractList.checkPositionIndex(index, this.length)\n\n string = string.substring(0, index) + value.concatToString(startIndex, endIndex) + string.substring(index)\n return this\n }\n\n /**\n * Inserts characters in a subsequence of the specified character sequence [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in the same order as in the [value] character sequence, starting at [index].\n *\n * @param index the position in this string builder to insert at.\n * @param value the character sequence from which a subsequence is inserted.\n * @param startIndex the beginning (inclusive) of the subsequence to insert.\n * @param endIndex the end (exclusive) of the subsequence to insert.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public fun insertRange(index: Int, value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder {\n AbstractList.checkPositionIndex(index, length)\n\n val stringCsq = value.toString()\n AbstractList.checkBoundsIndexes(startIndex, endIndex, stringCsq.length)\n\n string = string.substring(0, index) + stringCsq.substring(startIndex, endIndex) + string.substring(index)\n return this\n }\n}\n\n\n/**\n * Clears the content of this string builder making it empty and returns this instance.\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 * Sets the character at the specified [index] to the specified [value].\n *\n * @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline operator fun StringBuilder.set(index: Int, value: Char) = this.set(index, value)\n\n/**\n * Replaces characters in the specified range of this string builder with characters in the specified string [value] and returns this instance.\n *\n * @param startIndex the beginning (inclusive) of the range to replace.\n * @param endIndex the end (exclusive) of the range to replace.\n * @param value the string to replace with.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] if [startIndex] is less than zero, greater than the length of this string builder, or `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline fun StringBuilder.setRange(startIndex: Int, endIndex: Int, value: String): StringBuilder =\n this.setRange(startIndex, endIndex, value)\n\n/**\n * Removes the character at the specified [index] from this string builder and returns this instance.\n *\n * If the `Char` at the specified [index] is part of a supplementary code point, this method does not remove the entire supplementary character.\n *\n * @param index the index of `Char` to remove.\n *\n * @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline fun StringBuilder.deleteAt(index: Int): StringBuilder = this.deleteAt(index)\n\n/**\n * Removes characters in the specified range from this string builder and returns this instance.\n *\n * @param startIndex the beginning (inclusive) of the range to remove.\n * @param endIndex the end (exclusive) of the range to remove.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] is out of range of this string builder indices or when `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline fun StringBuilder.deleteRange(startIndex: Int, endIndex: Int): StringBuilder = this.deleteRange(startIndex, endIndex)\n\n/**\n * Copies characters from this string builder into the [destination] character array.\n *\n * @param destination the array to copy to.\n * @param destinationOffset the position in the array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the range to copy, 0 by default.\n * @param endIndex the end (exclusive) of the range to copy, length of this string builder by default.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this string builder 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@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\", \"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun StringBuilder.toCharArray(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = this.length) =\n this.toCharArray(destination, destinationOffset, startIndex, endIndex)\n\n/**\n * Appends characters in a subarray of the specified character array [value] to this string builder and returns this instance.\n *\n * Characters are appended in order, starting at specified [startIndex].\n *\n * @param value the array from which characters are appended.\n * @param startIndex the beginning (inclusive) of the subarray to append.\n * @param endIndex the end (exclusive) of the subarray to append.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline fun StringBuilder.appendRange(value: CharArray, startIndex: Int, endIndex: Int): StringBuilder =\n this.appendRange(value, startIndex, endIndex)\n\n/**\n * Appends a subsequence of the specified character sequence [value] to this string builder and returns this instance.\n *\n * @param value the character sequence from which a subsequence is appended.\n * @param startIndex the beginning (inclusive) of the subsequence to append.\n * @param endIndex the end (exclusive) of the subsequence to append.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline fun StringBuilder.appendRange(value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder =\n this.appendRange(value, startIndex, endIndex)\n\n/**\n * Inserts characters in a subarray of the specified character array [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in same order as in the [value] array, starting at [index].\n *\n * @param index the position in this string builder to insert at.\n * @param value the array from which characters are inserted.\n * @param startIndex the beginning (inclusive) of the subarray to insert.\n * @param endIndex the end (exclusive) of the subarray to insert.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline fun StringBuilder.insertRange(index: Int, value: CharArray, startIndex: Int, endIndex: Int): StringBuilder =\n this.insertRange(index, value, startIndex, endIndex)\n\n/**\n * Inserts characters in a subsequence of the specified character sequence [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in the same order as in the [value] character sequence, starting at [index].\n *\n * @param index the position in this string builder to insert at.\n * @param value the character sequence from which a subsequence is inserted.\n * @param startIndex the beginning (inclusive) of the subsequence to insert.\n * @param endIndex the end (exclusive) of the subsequence to insert.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline fun StringBuilder.insertRange(index: Int, value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder =\n this.insertRange(index, value, startIndex, endIndex)\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 this string is not `null` and its content is equal to the word \"true\", ignoring case, and `false` otherwise.\n *\n * There are also strict versions of the function available on non-nullable String, [toBooleanStrict] and [toBooleanStrictOrNull].\n */\n@SinceKotlin(\"1.4\")\npublic actual fun String?.toBoolean(): Boolean = this != null && this.lowercase() == \"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.lowercase()) {\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 char < '\\u0080' -> -1\n char >= '\\uFF21' && char <= '\\uFF3A' -> char - '\\uFF21' + 10 // full-width latin capital letter\n char >= '\\uFF41' && char <= '\\uFF5A' -> char - '\\uFF41' + 10 // full-width latin small letter\n else -> char.digitToIntImpl()\n}.let { if (it >= radix) -1 else it }\n","/*\n * Copyright 2010-2021 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\nprivate fun Iterable.toFlags(prepend: String): String = joinToString(\"\", prefix = prepend) { it.value }\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 * Returns a named group with the specified [name].\n *\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 this match group collection doesn't support getting match groups by name,\n * for example, when it's not supported by the current platform.\n */\n@SinceKotlin(\"1.7\")\npublic actual operator fun MatchGroupCollection.get(name: String): MatchGroup? {\n val namedGroups = this as? MatchNamedGroupCollection\n ?: throw UnsupportedOperationException(\"Retrieving groups by name is not supported on this platform.\")\n\n return namedGroups[name]\n}\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 * Note that `RegExp` objects under the hood are constructed with [the \"u\" flag](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/unicode)\n * that enables Unicode-related features in regular expressions. This also makes the pattern syntax more strict,\n * for example, prohibiting unnecessary escape sequences.\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.toFlags(\"gu\"))\n private var nativeStickyPattern: RegExp? = null\n private fun initStickyPattern(): RegExp =\n nativeStickyPattern ?: RegExp(pattern, options.toFlags(\"yu\")).also { nativeStickyPattern = it }\n\n private var nativeMatchesEntirePattern: RegExp? = null\n private fun initMatchesEntirePattern(): RegExp =\n nativeMatchesEntirePattern ?: run {\n if (pattern.startsWith('^') && pattern.endsWith('$'))\n nativePattern\n else\n return RegExp(\"^${pattern.trimStart('^').trimEnd('$')}$\", options.toFlags(\"gu\"))\n }.also { nativeMatchesEntirePattern = it }\n\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 @SinceKotlin(\"1.7\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public actual fun matchesAt(input: CharSequence, index: Int): Boolean {\n if (index < 0 || index > input.length) {\n throw IndexOutOfBoundsException(\"index out of bounds: $index, input length: ${input.length}\")\n }\n val pattern = initStickyPattern()\n pattern.lastIndex = index\n return pattern.test(input.toString())\n }\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 * @throws IndexOutOfBoundsException if [startIndex] is less than zero or greater than the length of the [input] char sequence.\n * @sample samples.text.Regexps.find\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n public actual fun find(input: CharSequence, startIndex: Int = 0): MatchResult? {\n if (startIndex < 0 || startIndex > input.length) {\n throw IndexOutOfBoundsException(\"Start index out of bounds: $startIndex, input length: ${input.length}\")\n }\n return nativePattern.findNext(input.toString(), startIndex, nativePattern)\n }\n\n /**\n * Returns a sequence of all occurrences of a regular expression within the [input] string, beginning at the specified [startIndex].\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or greater than the length of the [input] char sequence.\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 if (startIndex < 0 || startIndex > input.length) {\n throw IndexOutOfBoundsException(\"Start index out of bounds: $startIndex, input length: ${input.length}\")\n }\n return generateSequence({ find(input, startIndex) }, { match -> match.next() })\n }\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 initMatchesEntirePattern().findNext(input.toString(), 0, nativePattern)\n\n @SinceKotlin(\"1.7\")\n @WasExperimental(ExperimentalStdlibApi::class)\n public actual fun matchAt(input: CharSequence, index: Int): MatchResult? {\n if (index < 0 || index > input.length) {\n throw IndexOutOfBoundsException(\"index out of bounds: $index, input length: ${input.length}\")\n }\n return initStickyPattern().findNext(input.toString(), index, nativePattern)\n }\n\n\n /**\n * Replaces all occurrences of this regular expression in the specified [input] string with specified [replacement] expression.\n *\n * The replacement string may contain references to the captured groups during a match. Occurrences of `${name}` or `$index`\n * in the replacement string will be substituted with the subsequences corresponding to the captured groups with the specified name or index.\n * In case of `$index`, the first digit after '$' is always treated as a part of group reference. Subsequent digits are incorporated\n * into `index` only if they would form a valid group reference. Only the digits '0'..'9' are considered as potential components\n * of the group reference. Note that indexes of captured groups start from 1, and the group with index 0 is the whole match.\n * In case of `${name}`, the `name` can consist of latin letters 'a'..'z' and 'A'..'Z', or digits '0'..'9'. The first character must be\n * a letter.\n *\n * Backslash character '\\' can be used to include the succeeding character as a literal in the replacement string, e.g, `\\$` or `\\\\`.\n * [Regex.escapeReplacement] can be used if [replacement] have to be treated as a literal string.\n *\n * @param input the char sequence to find matches of this regular expression in\n * @param replacement the expression to replace found matches with\n * @return the result of replacing each occurrence of this regular expression in [input] with the result of evaluating the [replacement] expression\n * @throws RuntimeException if [replacement] expression is malformed, or capturing group with specified `name` or `index` does not exist\n */\n public actual fun replace(input: CharSequence, replacement: String): String {\n if (!replacement.contains('\\\\') && !replacement.contains('$')) {\n return input.toString().nativeReplace(nativePattern, replacement)\n }\n return replace(input) { substituteGroupRefs(it, replacement) }\n }\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 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 * The replacement string may contain references to the captured groups during a match. Occurrences of `${name}` or `$index`\n * in the replacement string will be substituted with the subsequences corresponding to the captured groups with the specified name or index.\n * In case of `$index`, the first digit after '$' is always treated as a part of group reference. Subsequent digits are incorporated\n * into `index` only if they would form a valid group reference. Only the digits '0'..'9' are considered as potential components\n * of the group reference. Note that indexes of captured groups start from 1, and the group with index 0 is the whole match.\n * In case of `${name}`, the `name` can consist of latin letters 'a'..'z' and 'A'..'Z', or digits '0'..'9'. The first character must be\n * a letter.\n *\n * Backslash character '\\' can be used to include the succeeding character as a literal in the replacement string, e.g, `\\$` or `\\\\`.\n * [Regex.escapeReplacement] can be used if [replacement] have to be treated as a literal string.\n *\n * @param input the char sequence to find a match of this regular expression in\n * @param replacement the expression to replace the found match with\n * @return the result of replacing the first occurrence of this regular expression in [input] with the result of evaluating the [replacement] expression\n * @throws RuntimeException if [replacement] expression is malformed, or capturing group with specified `name` or `index` does not exist\n */\n public actual fun replaceFirst(input: CharSequence, replacement: String): String {\n if (!replacement.contains('\\\\') && !replacement.contains('$')) {\n val nonGlobalOptions = options.toFlags(\"u\")\n return input.toString().nativeReplace(RegExp(pattern, nonGlobalOptions), replacement)\n }\n\n val match = find(input) ?: return input.toString()\n\n return buildString {\n append(input.substring(0, match.range.first))\n append(substituteGroupRefs(match, replacement))\n append(input.substring(match.range.last + 1, input.length))\n }\n }\n\n /**\n * Splits the [input] CharSequence to a list of strings 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 requireNonNegativeLimit(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 * Splits the [input] CharSequence to a sequence of strings 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 * @sample samples.text.Regexps.splitToSequence\n */\n @SinceKotlin(\"1.6\")\n @WasExperimental(ExperimentalStdlibApi::class)\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n public actual fun splitToSequence(input: CharSequence, limit: Int = 0): Sequence {\n requireNonNegativeLimit(limit)\n\n return sequence {\n var match = find(input)\n if (match == null || limit == 1) {\n yield(input.toString())\n return@sequence\n }\n\n var nextStart = 0\n var splitCount = 0\n\n do {\n val foundMatch = match!!\n yield(input.substring(nextStart, foundMatch.range.first))\n nextStart = foundMatch.range.endInclusive + 1\n match = foundMatch.next()\n } while (++splitCount != limit - 1 && match != null)\n\n yield(input.substring(nextStart, input.length))\n }\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 internal fun nativeEscapeReplacement(literal: String): String = literal.nativeReplace(nativeReplacementEscape, \"$$$$\")\n private val nativeReplacementEscape = RegExp(\"\"\"\\$\"\"\", \"g\")\n }\n}\n\n\n\nprivate fun RegExp.findNext(input: String, from: Int, nextPattern: RegExp): 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 : MatchNamedGroupCollection, 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 override fun get(name: String): MatchGroup? {\n // An object of named capturing groups whose keys are the names and values are the capturing groups\n // or undefined if no named capturing groups were defined.\n val groups = match.asDynamic().groups\n ?: throw IllegalArgumentException(\"Capturing group with name {$name} does not exist. No named capturing group was defined in Regex\")\n\n // If the match was successful but the group specified failed to match any part of the input sequence,\n // the associated value is 'undefined'. Value for a non-existent key is also 'undefined'. Thus, explicitly check if the key exists.\n if (!hasOwnPrototypeProperty(groups, name))\n throw IllegalArgumentException(\"Capturing group with name {$name} does not exist\")\n\n val value = groups[name]\n return if (value == undefined) null else MatchGroup(value as String)\n }\n }\n\n private fun hasOwnPrototypeProperty(o: Any?, name: String): Boolean {\n return js(\"Object\").prototype.hasOwnProperty.call(o, name).unsafeCast()\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? =\n nextPattern.findNext(input, if (range.isEmpty()) advanceToNextCharacter(range.start) else range.endInclusive + 1, nextPattern)\n\n private fun advanceToNextCharacter(index: Int): Int {\n if (index < input.lastIndex) {\n val code1 = input.asDynamic().charCodeAt(index).unsafeCast()\n if (code1 in 0xD800..0xDBFF) {\n val code2 = input.asDynamic().charCodeAt(index + 1).unsafeCast()\n if (code2 in 0xDC00..0xDFFF) {\n return index + 2\n }\n }\n }\n return index + 1\n }\n }\n}\n\n// The same code from K/N Regex.kt\nprivate fun substituteGroupRefs(match: MatchResult, replacement: String): String {\n var index = 0\n val result = StringBuilder()\n\n while (index < replacement.length) {\n val char = replacement[index++]\n if (char == '\\\\') {\n if (index == replacement.length)\n throw IllegalArgumentException(\"The Char to be escaped is missing\")\n\n result.append(replacement[index++])\n } else if (char == '$') {\n if (index == replacement.length)\n throw IllegalArgumentException(\"Capturing group index is missing\")\n\n if (replacement[index] == '{') {\n val endIndex = replacement.readGroupName(++index)\n\n if (index == endIndex)\n throw IllegalArgumentException(\"Named capturing group reference should have a non-empty name\")\n if (endIndex == replacement.length || replacement[endIndex] != '}')\n throw IllegalArgumentException(\"Named capturing group reference is missing trailing '}'\")\n\n val groupName = replacement.substring(index, endIndex)\n\n result.append(match.groups[groupName]?.value ?: \"\")\n index = endIndex + 1 // skip past '}'\n } else {\n if (replacement[index] !in '0'..'9')\n throw IllegalArgumentException(\"Invalid capturing group reference\")\n\n val groups = match.groups\n val endIndex = replacement.readGroupIndex(index, groups.size)\n val groupIndex = replacement.substring(index, endIndex).toInt()\n\n if (groupIndex >= groups.size)\n throw IndexOutOfBoundsException(\"Group with index $groupIndex does not exist\")\n\n result.append(groups[groupIndex]?.value ?: \"\")\n index = endIndex\n }\n } else {\n result.append(char)\n }\n }\n return result.toString()\n}\n\n// The name must be a legal JavaScript identifier. See https://262.ecma-international.org/5.1/#sec-7.6\n// Don't try to validate the referenced group name as it may be time-consuming.\n// If the name is invalid, it won't be found in `match.groups` anyway and will throw.\n// Group names in the target Regex are validated at creation time.\nprivate fun String.readGroupName(startIndex: Int): Int {\n var index = startIndex\n while (index < length) {\n if (this[index] == '}') {\n break\n } else {\n index++\n }\n }\n return index\n}\n\nprivate fun String.readGroupIndex(startIndex: Int, groupCount: Int): Int {\n // at least one digit after '$' is always captured\n var index = startIndex + 1\n var groupIndex = this[startIndex] - '0'\n\n // capture the largest valid group index\n while (index < length && this[index] in '0'..'9') {\n val newGroupIndex = (groupIndex * 10) + (this[index] - '0')\n if (newGroupIndex in 0 until groupCount) {\n groupIndex = newGroupIndex\n index++\n } else {\n break\n }\n }\n return index\n}","/*\n * Copyright 2010-2020 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(\"EXTENSION_SHADOWED_BY_MEMBER\")\n\npackage kotlin.text\n\nimport kotlin.contracts.*\n\n/**\n * A mutable sequence of characters.\n *\n * String builder can be used to efficiently perform multiple string manipulation operations.\n */\nexpect class StringBuilder : Appendable, CharSequence {\n /** Constructs an empty string builder. */\n constructor()\n\n /** Constructs an empty string builder with the specified initial [capacity]. */\n constructor(capacity: Int)\n\n /** Constructs a string builder that contains the same characters as the specified [content] char sequence. */\n constructor(content: CharSequence)\n\n /** Constructs a string builder that contains the same characters as the specified [content] string. */\n @SinceKotlin(\"1.3\")\n// @ExperimentalStdlibApi\n constructor(content: String)\n\n override val length: Int\n\n override operator fun get(index: Int): Char\n\n override fun subSequence(startIndex: Int, endIndex: Int): CharSequence\n\n override fun append(value: Char): StringBuilder\n override fun append(value: CharSequence?): StringBuilder\n override fun append(value: CharSequence?, startIndex: Int, endIndex: Int): StringBuilder\n\n /**\n * Reverses the contents of this string builder and returns this instance.\n *\n * Surrogate pairs included in this string builder are treated as single characters.\n * Therefore, the order of the high-low surrogates is never reversed.\n *\n * Note that the reverse operation may produce new surrogate pairs that were unpaired low-surrogates and high-surrogates before the operation.\n * For example, reversing `\"\\uDC00\\uD800\"` produces `\"\\uD800\\uDC00\"` which is a valid surrogate pair.\n */\n fun reverse(): StringBuilder\n\n /**\n * Appends the string representation of the specified object [value] to this string builder and returns this instance.\n *\n * The overall effect is exactly as if the [value] were converted to a string by the `value.toString()` method,\n * and then that string was appended to this string builder.\n */\n fun append(value: Any?): StringBuilder\n\n /**\n * Appends the string representation of the specified boolean [value] to this string builder and returns this instance.\n *\n * The overall effect is exactly as if the [value] were converted to a string by the `value.toString()` method,\n * and then that string was appended to this string builder.\n */\n @SinceKotlin(\"1.3\")\n fun append(value: Boolean): StringBuilder\n\n /**\n * Appends characters in the specified character array [value] to this string builder and returns this instance.\n *\n * Characters are appended in order, starting at the index 0.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun append(value: CharArray): StringBuilder\n\n /**\n * Appends the specified string [value] to this string builder and returns this instance.\n *\n * If [value] is `null`, then the four characters `\"null\"` are appended.\n */\n @SinceKotlin(\"1.3\")\n fun append(value: String?): StringBuilder\n\n /**\n * Returns the current capacity of this string builder.\n *\n * The capacity is the maximum length this string builder can have before an allocation occurs.\n *\n * In Kotlin/JS implementation of StringBuilder the value returned from this method may not indicate the actual size of the backing storage.\n */\n @SinceKotlin(\"1.3\")\n fun capacity(): Int\n\n /**\n * Ensures that the capacity of this string builder is at least equal to the specified [minimumCapacity].\n *\n * If the current capacity is less than the [minimumCapacity], a new backing storage is allocated with greater capacity.\n * Otherwise, this method takes no action and simply returns.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun ensureCapacity(minimumCapacity: Int)\n\n /**\n * Returns the index within this string builder of the first occurrence of the specified [string].\n *\n * Returns `-1` if the specified [string] does not occur in this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun indexOf(string: String): Int\n\n /**\n * Returns the index within this string builder of the first occurrence of the specified [string],\n * starting at the specified [startIndex].\n *\n * Returns `-1` if the specified [string] does not occur in this string builder starting at the specified [startIndex].\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun indexOf(string: String, startIndex: Int): Int\n\n /**\n * Returns the index within this string builder of the last occurrence of the specified [string].\n * The last occurrence of empty string `\"\"` is considered to be at the index equal to `this.length`.\n *\n * Returns `-1` if the specified [string] does not occur in this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun lastIndexOf(string: String): Int\n\n /**\n * Returns the index within this string builder of the last occurrence of the specified [string],\n * starting from the specified [startIndex] toward the beginning.\n *\n * Returns `-1` if the specified [string] does not occur in this string builder starting at the specified [startIndex].\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun lastIndexOf(string: String, startIndex: Int): Int\n\n /**\n * Inserts the string representation of the specified boolean [value] into this string builder at the specified [index] and returns this instance.\n *\n * The overall effect is exactly as if the [value] were converted to a string by the `value.toString()` method,\n * and then that string was inserted into this string builder at the specified [index].\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun insert(index: Int, value: Boolean): StringBuilder\n\n /**\n * Inserts the specified character [value] into this string builder at the specified [index] and returns this instance.\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun insert(index: Int, value: Char): StringBuilder\n\n /**\n * Inserts characters in the specified character array [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in same order as in the [value] character array, starting at [index].\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun insert(index: Int, value: CharArray): StringBuilder\n\n /**\n * Inserts characters in the specified character sequence [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in the same order as in the [value] character sequence, starting at [index].\n *\n * @param index the position in this string builder to insert at.\n * @param value the character sequence from which characters are inserted. If [value] is `null`, then the four characters `\"null\"` are inserted.\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun insert(index: Int, value: CharSequence?): StringBuilder\n\n /**\n * Inserts the string representation of the specified object [value] into this string builder at the specified [index] and returns this instance.\n *\n * The overall effect is exactly as if the [value] were converted to a string by the `value.toString()` method,\n * and then that string was inserted into this string builder at the specified [index].\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun insert(index: Int, value: Any?): StringBuilder\n\n /**\n * Inserts the string [value] into this string builder at the specified [index] and returns this instance.\n *\n * If [value] is `null`, then the four characters `\"null\"` are inserted.\n *\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun insert(index: Int, value: String?): StringBuilder\n\n /**\n * Sets the length of this string builder to the specified [newLength].\n *\n * If the [newLength] is less than the current length, it is changed to the specified [newLength].\n * Otherwise, null characters '\\u0000' are appended to this string builder until its length is less than the [newLength].\n *\n * Note that in Kotlin/JS [set] operator function has non-constant execution time complexity.\n * Therefore, increasing length of this string builder and then updating each character by index may slow down your program.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] if [newLength] is less than zero.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun setLength(newLength: Int)\n\n /**\n * Returns a new [String] that contains characters in this string builder at [startIndex] (inclusive) and up to the [length] (exclusive).\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or greater than the length of this string builder.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun substring(startIndex: Int): String\n\n /**\n * Returns a new [String] that contains characters in this string builder at [startIndex] (inclusive) and up to the [endIndex] (exclusive).\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this string builder indices or when `startIndex > endIndex`.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun substring(startIndex: Int, endIndex: Int): String\n\n /**\n * Attempts to reduce storage used for this string builder.\n *\n * If the backing storage of this string builder is larger than necessary to hold its current contents,\n * then it may be resized to become more space efficient.\n * Calling this method may, but is not required to, affect the value of the [capacity] property.\n */\n @SinceKotlin(\"1.4\")\n @WasExperimental(ExperimentalStdlibApi::class)\n fun trimToSize()\n}\n\n\n/**\n * Clears the content of this string builder making it empty and returns this instance.\n *\n * @sample samples.text.Strings.clearStringBuilder\n */\n@SinceKotlin(\"1.3\")\npublic expect fun StringBuilder.clear(): StringBuilder\n\n/**\n * Sets the character at the specified [index] to the specified [value].\n *\n * @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect operator fun StringBuilder.set(index: Int, value: Char)\n\n/**\n * Replaces characters in the specified range of this string builder with characters in the specified string [value] and returns this instance.\n *\n * @param startIndex the beginning (inclusive) of the range to replace.\n * @param endIndex the end (exclusive) of the range to replace.\n * @param value the string to replace with.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] if [startIndex] is less than zero, greater than the length of this string builder, or `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun StringBuilder.setRange(startIndex: Int, endIndex: Int, value: String): StringBuilder\n\n/**\n * Removes the character at the specified [index] from this string builder and returns this instance.\n *\n * If the `Char` at the specified [index] is part of a supplementary code point, this method does not remove the entire supplementary character.\n *\n * @param index the index of `Char` to remove.\n *\n * @throws IndexOutOfBoundsException if [index] is out of bounds of this string builder.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun StringBuilder.deleteAt(index: Int): StringBuilder\n\n/**\n * Removes characters in the specified range from this string builder and returns this instance.\n *\n * @param startIndex the beginning (inclusive) of the range to remove.\n * @param endIndex the end (exclusive) of the range to remove.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] is out of range of this string builder indices or when `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun StringBuilder.deleteRange(startIndex: Int, endIndex: Int): StringBuilder\n\n/**\n * Copies characters from this string builder into the [destination] character array.\n *\n * @param destination the array to copy to.\n * @param destinationOffset the position in the array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the range to copy, 0 by default.\n * @param endIndex the end (exclusive) of the range to copy, length of this string builder by default.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this string builder 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@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun StringBuilder.toCharArray(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = this.length)\n\n/**\n * Appends characters in a subarray of the specified character array [value] to this string builder and returns this instance.\n *\n * Characters are appended in order, starting at specified [startIndex].\n *\n * @param value the array from which characters are appended.\n * @param startIndex the beginning (inclusive) of the subarray to append.\n * @param endIndex the end (exclusive) of the subarray to append.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun StringBuilder.appendRange(value: CharArray, startIndex: Int, endIndex: Int): StringBuilder\n\n/**\n * Appends a subsequence of the specified character sequence [value] to this string builder and returns this instance.\n *\n * @param value the character sequence from which a subsequence is appended.\n * @param startIndex the beginning (inclusive) of the subsequence to append.\n * @param endIndex the end (exclusive) of the subsequence to append.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun StringBuilder.appendRange(value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder\n\n/**\n * Inserts characters in a subarray of the specified character array [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in same order as in the [value] array, starting at [index].\n *\n * @param index the position in this string builder to insert at.\n * @param value the array from which characters are inserted.\n * @param startIndex the beginning (inclusive) of the subarray to insert.\n * @param endIndex the end (exclusive) of the subarray to insert.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun StringBuilder.insertRange(index: Int, value: CharArray, startIndex: Int, endIndex: Int): StringBuilder\n\n/**\n * Inserts characters in a subsequence of the specified character sequence [value] into this string builder at the specified [index] and returns this instance.\n *\n * The inserted characters go in the same order as in the [value] character sequence, starting at [index].\n *\n * @param index the position in this string builder to insert at.\n * @param value the character sequence from which a subsequence is inserted.\n * @param startIndex the beginning (inclusive) of the subsequence to insert.\n * @param endIndex the end (exclusive) of the subsequence to insert.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException if [index] is less than zero or greater than the length of this string builder.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun StringBuilder.insertRange(index: Int, value: CharSequence, startIndex: Int, endIndex: Int): StringBuilder\n\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\")\n@Deprecated(\"Use append(value: Any?) instead\", ReplaceWith(\"append(value = obj)\"), DeprecationLevel.WARNING)\n@kotlin.internal.InlineOnly\npublic inline fun StringBuilder.append(obj: Any?): StringBuilder = this.append(obj)\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 contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return StringBuilder().apply(builderAction).toString()\n}\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 contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return StringBuilder(capacity).apply(builderAction).toString()\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// KT-52336\n@Deprecated(\"Use appendRange instead.\", ReplaceWith(\"this.appendRange(str, offset, offset + len)\"), level = DeprecationLevel.ERROR)\n@kotlin.internal.InlineOnly\n@Suppress(\"UNUSED_PARAMETER\")\npublic inline fun StringBuilder.append(str: CharArray, offset: Int, len: Int): StringBuilder = throw NotImplementedError()\n\n/** Appends a line feed character (`\\n`) to this StringBuilder. */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun StringBuilder.appendLine(): StringBuilder = append('\\n')\n\n/** Appends [value] to this [StringBuilder], followed by a line feed character (`\\n`). */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun StringBuilder.appendLine(value: CharSequence?): StringBuilder = append(value).appendLine()\n\n/** Appends [value] to this [StringBuilder], followed by a line feed character (`\\n`). */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun StringBuilder.appendLine(value: String?): StringBuilder = append(value).appendLine()\n\n/** Appends [value] to this [StringBuilder], followed by a line feed character (`\\n`). */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun StringBuilder.appendLine(value: Any?): StringBuilder = append(value).appendLine()\n\n/** Appends [value] to this [StringBuilder], followed by a line feed character (`\\n`). */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun StringBuilder.appendLine(value: CharArray): StringBuilder = append(value).appendLine()\n\n/** Appends [value] to this [StringBuilder], followed by a line feed character (`\\n`). */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun StringBuilder.appendLine(value: Char): StringBuilder = append(value).appendLine()\n\n/** Appends [value] to this [StringBuilder], followed by a line feed character (`\\n`). */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun StringBuilder.appendLine(value: Boolean): StringBuilder = append(value).appendLine()\n","/*\n * Copyright 2010-2021 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@Deprecated(\"Use Regex.matches() instead\", ReplaceWith(\"regex.toRegex().matches(this)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.6\")\npublic fun String.matches(regex: String): Boolean {\n @Suppress(\"DEPRECATION\")\n val result = this.match(regex)\n return result != null && result.size != 0\n}\n\n/**\n * Returns `true` if this string is empty or consists solely of whitespace characters.\n *\n * @sample samples.text.Strings.stringIsBlank\n */\npublic actual fun CharSequence.isBlank(): Boolean = length == 0 || indices.all { this[it].isWhitespace() }\n\n/**\n * Returns `true` if this string is equal to [other], optionally ignoring character case.\n *\n * Two strings are considered to be equal if they have the same length and the same character at the same index.\n * If [ignoreCase] is true, the result of `Char.uppercaseChar().lowercaseChar()` on each character is compared.\n *\n * @param ignoreCase `true` to ignore character case when comparing strings. By default `false`.\n */\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String?.equals(other: String?, ignoreCase: Boolean = false): Boolean {\n if (this == null) return other == null\n if (other == null) return false\n if (!ignoreCase) return this == other\n\n if (this.length != other.length) return false\n\n for (index in 0 until this.length) {\n val thisChar = this[index]\n val otherChar = other[index]\n if (!thisChar.equals(otherChar, ignoreCase)) {\n return false\n }\n }\n\n return true\n}\n\n\n/**\n * Returns `true` if the specified range in this char sequence is equal to the specified range in another char sequence.\n * @param thisOffset the start offset in this char sequence of the substring to compare.\n * @param other the string against a substring of which the comparison is performed.\n * @param otherOffset the start offset in the other char sequence of the substring to compare.\n * @param length the length of the substring to compare.\n */\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun CharSequence.regionMatches(\n thisOffset: Int,\n other: CharSequence,\n otherOffset: Int,\n length: Int,\n ignoreCase: Boolean = false\n): Boolean = regionMatchesImpl(thisOffset, other, otherOffset, length, ignoreCase)\n\n/**\n * Returns `true` if the specified range in this string is equal to the specified range in another string.\n * @param thisOffset the start offset in this string of the substring to compare.\n * @param other the string against a substring of which the comparison is performed.\n * @param otherOffset the start offset in the other string of the substring to compare.\n * @param length the length of the substring to compare.\n */\n@SinceKotlin(\"1.9\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.regionMatches(\n thisOffset: Int,\n other: String,\n otherOffset: Int,\n length: Int,\n ignoreCase: Boolean = false\n): Boolean = regionMatchesImpl(thisOffset, other, otherOffset, length, ignoreCase)\n\n\n/**\n * Returns a copy of this string having its first letter titlecased using the rules of the default locale,\n * or the original string if it's empty or already starts with a title case letter.\n *\n * The title case of a character is usually the same as its upper case with several exceptions.\n * The particular list of characters with the special title case form depends on the underlying platform.\n *\n * @sample samples.text.Strings.capitalize\n */\n@Deprecated(\"Use replaceFirstChar instead.\", ReplaceWith(\"replaceFirstChar { if (it.isLowerCase()) it.titlecase() else it.toString() }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic actual fun String.capitalize(): String {\n return if (isNotEmpty()) substring(0, 1).uppercase() + substring(1) else this\n}\n\n/**\n * Returns a copy of this string having its first letter lowercased using the rules of the default locale,\n * or the original string if it's empty or already starts with a lower case letter.\n *\n * @sample samples.text.Strings.decapitalize\n */\n@Deprecated(\"Use replaceFirstChar instead.\", ReplaceWith(\"replaceFirstChar { it.lowercase() }\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic actual fun String.decapitalize(): String {\n return if (isNotEmpty()) substring(0, 1).lowercase() + 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 * @sample samples.text.Strings.repeat\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/**\n * Returns a new string obtained by replacing all occurrences of the [oldValue] substring in this string\n * with the specified [newValue] string.\n *\n * @sample samples.text.Strings.replace\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) \"gui\" else \"gu\"), Regex.nativeEscapeReplacement(newValue))\n\n/**\n * Returns a new string with all occurrences of [oldChar] replaced with [newChar].\n *\n * @sample samples.text.Strings.replace\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) \"gui\" else \"gu\"), 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) \"ui\" else \"u\"), Regex.nativeEscapeReplacement(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) \"ui\" else \"u\"), newChar.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.text\n\n/** Returns the negative [size] if [throwOnMalformed] is false, throws [CharacterCodingException] otherwise. */\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].code\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++].code\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-2020 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 the detailed description of this throwable with its stack trace.\n *\n * The detailed description includes:\n * - the short description (see [Throwable.toString]) of this throwable;\n * - the complete stack trace;\n * - detailed descriptions of the exceptions that were [suppressed][suppressedExceptions] in order to deliver this exception;\n * - the detailed description of each throwable in the [Throwable.cause] chain.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun Throwable.stackTraceToString(): String = ExceptionTraceBuilder().buildFor(this)\n\n/**\n * Prints the [detailed description][Throwable.stackTraceToString] of this throwable to console error output.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun Throwable.printStackTrace() {\n console.error(this.stackTraceToString())\n}\n\n/**\n * Adds the specified exception to the list of exceptions that were\n * suppressed in order to deliver this exception.\n */\n@SinceKotlin(\"1.4\")\npublic actual fun Throwable.addSuppressed(exception: Throwable) {\n if (this !== exception) {\n val suppressed = this.asDynamic()._suppressed.unsafeCast?>()\n if (suppressed == null) {\n this.asDynamic()._suppressed = mutableListOf(exception)\n } else {\n suppressed.add(exception)\n }\n }\n}\n\n/**\n * Returns a list of all exceptions that were suppressed in order to deliver this exception.\n */\n@SinceKotlin(\"1.4\")\npublic actual val Throwable.suppressedExceptions: List\n get() {\n return this.asDynamic()._suppressed?.unsafeCast>() ?: emptyList()\n }\n\n\nprivate class ExceptionTraceBuilder {\n private val target = StringBuilder()\n private val visited = arrayOf()\n private var topStack: String = \"\"\n private var topStackStart: Int = 0\n\n fun buildFor(exception: Throwable): String {\n exception.dumpFullTrace(\"\", \"\")\n return target.toString()\n }\n\n private fun hasSeen(exception: Throwable): Boolean = visited.any { it === exception }\n\n private fun Throwable.dumpFullTrace(indent: String, qualifier: String) {\n this.dumpSelfTrace(indent, qualifier) || return\n\n var cause = this.cause\n while (cause != null) {\n cause.dumpSelfTrace(indent, \"Caused by: \") || return\n cause = cause.cause\n }\n }\n\n private fun Throwable.dumpSelfTrace(indent: String, qualifier: String): Boolean {\n target.append(indent).append(qualifier)\n val shortInfo = this.toString()\n if (hasSeen(this)) {\n target.append(\"[CIRCULAR REFERENCE, SEE ABOVE: \").append(shortInfo).append(\"]\\n\")\n return false\n }\n visited.asDynamic().push(this)\n\n var stack = this.asDynamic().stack as String?\n if (stack != null) {\n val stackStart = stack.indexOf(shortInfo).let { if (it < 0) 0 else it + shortInfo.length }\n if (stackStart == 0) target.append(shortInfo).append(\"\\n\")\n if (topStack.isEmpty()) {\n topStack = stack\n topStackStart = stackStart\n } else {\n stack = dropCommonFrames(stack, stackStart)\n }\n if (indent.isNotEmpty()) {\n // indent stack, but avoid indenting exception message lines\n val messageLines = if (stackStart == 0) 0 else 1 + shortInfo.count { c -> c == '\\n' }\n stack.lineSequence().forEachIndexed { index: Int, line: String ->\n if (index >= messageLines) target.append(indent)\n target.append(line).append(\"\\n\")\n }\n } else {\n target.append(stack).append(\"\\n\")\n }\n } else {\n target.append(shortInfo).append(\"\\n\")\n }\n\n val suppressed = suppressedExceptions\n if (suppressed.isNotEmpty()) {\n val suppressedIndent = indent + \" \"\n for (s in suppressed) {\n s.dumpFullTrace(suppressedIndent, \"Suppressed: \")\n }\n }\n return true\n }\n\n private fun dropCommonFrames(stack: String, stackStart: Int): String {\n var commonFrames: Int = 0\n var lastBreak: Int = 0\n var preLastBreak: Int = 0\n for (pos in 0 until minOf(topStack.length - topStackStart, stack.length - stackStart)) {\n val c = stack[stack.lastIndex - pos]\n if (c != topStack[topStack.lastIndex - pos]) break\n if (c == '\\n') {\n commonFrames += 1\n preLastBreak = lastBreak\n lastBreak = pos\n }\n }\n if (commonFrames <= 1) return stack\n while (preLastBreak > 0 && stack[stack.lastIndex - (preLastBreak - 1)] == ' ')\n preLastBreak -= 1\n\n // leave 1 common frame to ease matching with the top exception stack\n return stack.dropLast(preLastBreak) + \"... and ${commonFrames - 1} more common stack frames skipped\"\n }\n}","/*\n * Copyright 2010-2021 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.time\n\nimport kotlin.js.json\nimport kotlin.math.*\n\ninternal actual inline val durationAssertionsEnabled: Boolean get() = true\n\ninternal actual fun formatToExactDecimals(value: Double, decimals: Int): String {\n val rounded = if (decimals == 0) {\n value\n } else {\n val pow = 10.0.pow(decimals)\n JsMath.round(abs(value) * pow) / pow * sign(value)\n }\n return if (abs(rounded) < 1e21) {\n // toFixed switches to scientific format after 1e21\n rounded.asDynamic().toFixed(decimals).unsafeCast()\n } else {\n // toPrecision outputs the specified number of digits, but only for positive numbers\n val positive = abs(rounded)\n val positiveString = positive.asDynamic().toPrecision(ceil(log10(positive)) + decimals).unsafeCast()\n if (rounded < 0) \"-$positiveString\" else positiveString\n }\n}\n\ninternal actual fun formatUpToDecimals(value: Double, decimals: Int): String {\n return value.asDynamic().toLocaleString(\"en-us\", json(\"maximumFractionDigits\" to decimals)).unsafeCast()\n}\n","/*\n * Copyright 2010-2021 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.time\n\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalTime::class)\npublic actual enum class DurationUnit(internal val scale: Double) {\n /**\n * Time unit representing one nanosecond, which is 1/1000 of a microsecond.\n */\n NANOSECONDS(1e0),\n /**\n * Time unit representing one microsecond, which is 1/1000 of a millisecond.\n */\n MICROSECONDS(1e3),\n /**\n * Time unit representing one millisecond, which is 1/1000 of a second.\n */\n MILLISECONDS(1e6),\n /**\n * Time unit representing one second.\n */\n SECONDS(1e9),\n /**\n * Time unit representing one minute.\n */\n MINUTES(60e9),\n /**\n * Time unit representing one hour.\n */\n HOURS(3600e9),\n /**\n * Time unit representing one day, which is always equal to 24 hours.\n */\n DAYS(86400e9);\n}\n\n@SinceKotlin(\"1.3\")\ninternal actual fun convertDurationUnit(value: Double, sourceUnit: DurationUnit, targetUnit: DurationUnit): Double {\n val sourceCompareTarget = sourceUnit.scale.compareTo(targetUnit.scale)\n return when {\n sourceCompareTarget > 0 -> value * (sourceUnit.scale / targetUnit.scale)\n sourceCompareTarget < 0 -> value / (targetUnit.scale / sourceUnit.scale)\n else -> value\n }\n}\n\n@SinceKotlin(\"1.5\")\ninternal actual fun convertDurationUnitOverflow(value: Long, sourceUnit: DurationUnit, targetUnit: DurationUnit): Long {\n val sourceCompareTarget = sourceUnit.scale.compareTo(targetUnit.scale)\n return when {\n sourceCompareTarget > 0 -> value * (sourceUnit.scale / targetUnit.scale).toLong()\n sourceCompareTarget < 0 -> value / (targetUnit.scale / sourceUnit.scale).toLong()\n else -> value\n }\n}\n\n@SinceKotlin(\"1.5\")\ninternal actual fun convertDurationUnit(value: Long, sourceUnit: DurationUnit, targetUnit: DurationUnit): Long {\n val sourceCompareTarget = sourceUnit.scale.compareTo(targetUnit.scale)\n return when {\n sourceCompareTarget > 0 -> {\n val scale = (sourceUnit.scale / targetUnit.scale).toLong()\n val result = value * scale\n when {\n result / scale == value -> result\n value > 0 -> Long.MAX_VALUE\n else -> Long.MIN_VALUE\n }\n }\n sourceCompareTarget < 0 -> value / (targetUnit.scale / sourceUnit.scale).toLong()\n else -> value\n }\n}\n\n\n","/*\n * Copyright 2010-2022 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.time\n\nimport kotlin.math.truncate\nimport kotlin.time.Duration.Companion.milliseconds\nimport kotlin.time.TimeSource.Monotonic.ValueTimeMark\n\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\") // visibility\ninternal actual typealias ValueTimeMarkReading = Any\n\ninternal interface DefaultTimeSource : TimeSource.WithComparableMarks {\n override fun markNow(): ValueTimeMark\n fun elapsedFrom(timeMark: ValueTimeMark): Duration\n fun differenceBetween(one: ValueTimeMark, another: ValueTimeMark): Duration\n fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark\n}\n\n@SinceKotlin(\"1.3\")\ninternal actual object MonotonicTimeSource : DefaultTimeSource, TimeSource.WithComparableMarks { // TODO: interface should not be required here\n\n private val actualSource: DefaultTimeSource = run {\n val isNode: Boolean = js(\"typeof process !== 'undefined' && process.versions && !!process.versions.node\")\n\n if (isNode)\n HrTimeSource(js(\"process\").unsafeCast())\n else\n js(\"typeof self !== 'undefined' ? self : globalThis\")\n .unsafeCast()\n ?.performance\n ?.let(::PerformanceTimeSource)\n ?: DateNowTimeSource\n }\n\n actual override fun markNow(): ValueTimeMark = actualSource.markNow()\n actual override fun elapsedFrom(timeMark: ValueTimeMark): Duration = actualSource.elapsedFrom(timeMark)\n actual override fun differenceBetween(one: ValueTimeMark, another: ValueTimeMark): Duration = actualSource.differenceBetween(one, another)\n\n actual override fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =\n actualSource.adjustReading(timeMark, duration)\n}\n\ninternal external interface Process {\n fun hrtime(time: Array = definedExternally): Array\n}\n\n@SinceKotlin(\"1.3\")\ninternal class HrTimeSource(private val process: Process) : DefaultTimeSource {\n @Suppress(\"NOTHING_TO_INLINE\")\n private class Reading(val components: Array) {\n inline operator fun component1(): Double = components.component1()\n inline operator fun component2(): Double = components.component2()\n override fun equals(other: Any?): Boolean = other is Reading && this.components contentEquals other.components\n override fun hashCode(): Int = components.contentHashCode()\n override fun toString(): String = components.contentToString()\n }\n\n override fun markNow(): ValueTimeMark =\n ValueTimeMark(Reading(process.hrtime()))\n\n override fun elapsedFrom(timeMark: ValueTimeMark): Duration =\n process.hrtime((timeMark.reading as Reading).components)\n .let { (seconds, nanos) -> seconds.toDuration(DurationUnit.SECONDS) + nanos.toDuration(DurationUnit.NANOSECONDS) }\n\n override fun differenceBetween(one: ValueTimeMark, another: ValueTimeMark): Duration {\n val (s1, n1) = one.reading as Reading\n val (s2, n2) = another.reading as Reading\n return (if (s1 == s2 && n1 == n2) Duration.ZERO else (s1 - s2).toDuration(DurationUnit.SECONDS)) + (n1 - n2).toDuration(DurationUnit.NANOSECONDS)\n }\n\n override fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =\n (timeMark.reading as Reading).let { (seconds, nanos) ->\n duration.toComponents { _, addNanos ->\n val resultSeconds = sumCheckNaN(seconds + truncate(duration.toDouble(DurationUnit.SECONDS)))\n Reading(arrayOf(resultSeconds, if (resultSeconds.isFinite()) nanos + addNanos else 0.0))\n }\n }.let(TimeSource.Monotonic::ValueTimeMark)\n\n\n override fun toString(): String = \"TimeSource(process.hrtime())\"\n}\n\n@SinceKotlin(\"1.3\")\ninternal class PerformanceTimeSource(private val performance: Performance) :\n DefaultTimeSource { // AbstractDoubleTimeSource(unit = DurationUnit.MILLISECONDS) {\n private fun read(): Double = performance.now()\n\n override fun markNow(): ValueTimeMark = ValueTimeMark(read())\n override fun elapsedFrom(timeMark: ValueTimeMark): Duration = (read() - timeMark.reading as Double).milliseconds\n\n override fun differenceBetween(one: ValueTimeMark, another: ValueTimeMark): Duration {\n val ms1 = one.reading as Double\n val ms2 = another.reading as Double\n return if (ms1 == ms2) Duration.ZERO else (ms1 - ms2).milliseconds\n }\n\n override fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =\n ValueTimeMark(sumCheckNaN(timeMark.reading as Double + duration.toDouble(DurationUnit.MILLISECONDS)))\n\n override fun toString(): String = \"TimeSource(self.performance.now())\"\n}\n\n@SinceKotlin(\"1.3\")\ninternal object DateNowTimeSource : DefaultTimeSource {\n private fun read(): Double = kotlin.js.Date.now()\n\n override fun markNow(): ValueTimeMark = ValueTimeMark(read())\n override fun elapsedFrom(timeMark: ValueTimeMark): Duration = (read() - timeMark.reading as Double).milliseconds\n\n override fun differenceBetween(one: ValueTimeMark, another: ValueTimeMark): Duration {\n val ms1 = one.reading as Double\n val ms2 = another.reading as Double\n return if (ms1 == ms2) Duration.ZERO else (ms1 - ms2).milliseconds\n }\n\n override fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =\n ValueTimeMark(sumCheckNaN(timeMark.reading as Double + duration.toDouble(DurationUnit.MILLISECONDS)))\n\n override fun toString(): String = \"TimeSource(Date.now())\"\n}\n\ninternal external interface GlobalPerformance {\n val performance: Performance\n}\n\ninternal external interface Performance {\n fun now(): Double\n}\n\nprivate fun sumCheckNaN(value: Double): Double = value.also { if (it.isNaN()) throw IllegalArgumentException(\"Summing infinities of different signs\") }","/*\n * Copyright 2010-2020 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 kotlinx.dom\n\nimport org.w3c.dom.*\nimport kotlin.contracts.*\n\n/**\n * Creates a new element with the specified [name].\n *\n * The element is initialized with the specified [init] function.\n */\n@SinceKotlin(\"1.4\")\npublic fun Document.createElement(name: String, init: Element.() -> Unit): Element {\n contract { callsInPlace(init, InvocationKind.EXACTLY_ONCE) }\n return createElement(name).apply(init)\n}\n\n/**\n * Appends a newly created element with the specified [name] to this element.\n *\n * The element is initialized with the specified [init] function.\n */\n@SinceKotlin(\"1.4\")\npublic fun Element.appendElement(name: String, init: Element.() -> Unit): Element {\n contract { callsInPlace(init, InvocationKind.EXACTLY_ONCE) }\n return ownerDocument!!.createElement(name, init).also { appendChild(it) }\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 kotlinx.dom\n\nimport org.w3c.dom.*\n\n/** Returns true if the element has the given CSS class style in its 'class' attribute */\n@SinceKotlin(\"1.4\")\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 */\n@SinceKotlin(\"1.4\")\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 */\n@SinceKotlin(\"1.4\")\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/**\n * Returns a named group with the specified [name].\n *\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 this match group collection doesn't support getting match groups by name,\n * for example, when it's not supported by the current platform.\n */\n@SinceKotlin(\"1.9\")\npublic expect operator fun MatchGroupCollection.get(name: String): MatchGroup?","/*\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 kotlinx.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 */\n@SinceKotlin(\"1.4\")\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 */\n@SinceKotlin(\"1.4\")\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 kotlinx.dom\n\nimport org.w3c.dom.*\n\n/** Removes all the children from this node. */\n@SinceKotlin(\"1.4\")\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 */\n@SinceKotlin(\"1.4\")\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 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-2022 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\n@Deprecated(\"Use UnionMessagePortOrWindowProxy instead.\", ReplaceWith(\"UnionMessagePortOrWindowProxy\"))\ntypealias UnionMessagePortOrWindow = UnionMessagePortOrWindowProxy\n\n@Deprecated(\"Use `as` instead.\", ReplaceWith(\"`as`\"))\nvar HTMLLinkElement.as_\n get() = `as`\n set(value) {\n `as` = value\n }\n\n@Deprecated(\"Use `is` instead.\", ReplaceWith(\"`is`\"))\nvar ElementCreationOptions.is_\n get() = `is`\n set(value) {\n `is` = value\n }","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.khronos.webgl\n\nimport kotlin.js.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 return o\n}\n\npublic external abstract class WebGLObject\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 * 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 * 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 * 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 * 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 * 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 * Exposes the JavaScript [WebGLUniformLocation](https://developer.mozilla.org/en/docs/Web/API/WebGLUniformLocation) to Kotlin\n */\npublic external abstract class WebGLUniformLocation\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\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\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)\n fun attachShader(program: WebGLProgram?, shader: WebGLShader?)\n fun bindAttribLocation(program: WebGLProgram?, index: Int, name: String)\n fun bindBuffer(target: Int, buffer: WebGLBuffer?)\n fun bindFramebuffer(target: Int, framebuffer: WebGLFramebuffer?)\n fun bindRenderbuffer(target: Int, renderbuffer: WebGLRenderbuffer?)\n fun bindTexture(target: Int, texture: WebGLTexture?)\n fun blendColor(red: Float, green: Float, blue: Float, alpha: Float)\n fun blendEquation(mode: Int)\n fun blendEquationSeparate(modeRGB: Int, modeAlpha: Int)\n fun blendFunc(sfactor: Int, dfactor: Int)\n fun blendFuncSeparate(srcRGB: Int, dstRGB: Int, srcAlpha: Int, dstAlpha: Int)\n fun bufferData(target: Int, size: Int, usage: Int)\n fun bufferData(target: Int, data: BufferDataSource?, usage: Int)\n fun bufferSubData(target: Int, offset: Int, data: BufferDataSource?)\n fun checkFramebufferStatus(target: Int): Int\n fun clear(mask: Int)\n fun clearColor(red: Float, green: Float, blue: Float, alpha: Float)\n fun clearDepth(depth: Float)\n fun clearStencil(s: Int)\n fun colorMask(red: Boolean, green: Boolean, blue: Boolean, alpha: Boolean)\n fun compileShader(shader: WebGLShader?)\n fun compressedTexImage2D(target: Int, level: Int, internalformat: Int, width: Int, height: Int, border: Int, data: ArrayBufferView)\n fun compressedTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, width: Int, height: Int, format: Int, data: ArrayBufferView)\n fun copyTexImage2D(target: Int, level: Int, internalformat: Int, x: Int, y: Int, width: Int, height: Int, border: Int)\n fun copyTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, x: Int, y: Int, width: Int, height: Int)\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)\n fun deleteBuffer(buffer: WebGLBuffer?)\n fun deleteFramebuffer(framebuffer: WebGLFramebuffer?)\n fun deleteProgram(program: WebGLProgram?)\n fun deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?)\n fun deleteShader(shader: WebGLShader?)\n fun deleteTexture(texture: WebGLTexture?)\n fun depthFunc(func: Int)\n fun depthMask(flag: Boolean)\n fun depthRange(zNear: Float, zFar: Float)\n fun detachShader(program: WebGLProgram?, shader: WebGLShader?)\n fun disable(cap: Int)\n fun disableVertexAttribArray(index: Int)\n fun drawArrays(mode: Int, first: Int, count: Int)\n fun drawElements(mode: Int, count: Int, type: Int, offset: Int)\n fun enable(cap: Int)\n fun enableVertexAttribArray(index: Int)\n fun finish()\n fun flush()\n fun framebufferRenderbuffer(target: Int, attachment: Int, renderbuffertarget: Int, renderbuffer: WebGLRenderbuffer?)\n fun framebufferTexture2D(target: Int, attachment: Int, textarget: Int, texture: WebGLTexture?, level: Int)\n fun frontFace(mode: Int)\n fun generateMipmap(target: Int)\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)\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)\n fun linkProgram(program: WebGLProgram?)\n fun pixelStorei(pname: Int, param: Int)\n fun polygonOffset(factor: Float, units: Float)\n fun readPixels(x: Int, y: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?)\n fun renderbufferStorage(target: Int, internalformat: Int, width: Int, height: Int)\n fun sampleCoverage(value: Float, invert: Boolean)\n fun scissor(x: Int, y: Int, width: Int, height: Int)\n fun shaderSource(shader: WebGLShader?, source: String)\n fun stencilFunc(func: Int, ref: Int, mask: Int)\n fun stencilFuncSeparate(face: Int, func: Int, ref: Int, mask: Int)\n fun stencilMask(mask: Int)\n fun stencilMaskSeparate(face: Int, mask: Int)\n fun stencilOp(fail: Int, zfail: Int, zpass: Int)\n fun stencilOpSeparate(face: Int, fail: Int, zfail: Int, zpass: Int)\n fun texImage2D(target: Int, level: Int, internalformat: Int, width: Int, height: Int, border: Int, format: Int, type: Int, pixels: ArrayBufferView?)\n fun texImage2D(target: Int, level: Int, internalformat: Int, format: Int, type: Int, source: TexImageSource?)\n fun texParameterf(target: Int, pname: Int, param: Float)\n fun texParameteri(target: Int, pname: Int, param: Int)\n fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?)\n fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, format: Int, type: Int, source: TexImageSource?)\n fun uniform1f(location: WebGLUniformLocation?, x: Float)\n fun uniform1fv(location: WebGLUniformLocation?, v: Float32Array)\n fun uniform1fv(location: WebGLUniformLocation?, v: Array)\n fun uniform1i(location: WebGLUniformLocation?, x: Int)\n fun uniform1iv(location: WebGLUniformLocation?, v: Int32Array)\n fun uniform1iv(location: WebGLUniformLocation?, v: Array)\n fun uniform2f(location: WebGLUniformLocation?, x: Float, y: Float)\n fun uniform2fv(location: WebGLUniformLocation?, v: Float32Array)\n fun uniform2fv(location: WebGLUniformLocation?, v: Array)\n fun uniform2i(location: WebGLUniformLocation?, x: Int, y: Int)\n fun uniform2iv(location: WebGLUniformLocation?, v: Int32Array)\n fun uniform2iv(location: WebGLUniformLocation?, v: Array)\n fun uniform3f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float)\n fun uniform3fv(location: WebGLUniformLocation?, v: Float32Array)\n fun uniform3fv(location: WebGLUniformLocation?, v: Array)\n fun uniform3i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int)\n fun uniform3iv(location: WebGLUniformLocation?, v: Int32Array)\n fun uniform3iv(location: WebGLUniformLocation?, v: Array)\n fun uniform4f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float, w: Float)\n fun uniform4fv(location: WebGLUniformLocation?, v: Float32Array)\n fun uniform4fv(location: WebGLUniformLocation?, v: Array)\n fun uniform4i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int, w: Int)\n fun uniform4iv(location: WebGLUniformLocation?, v: Int32Array)\n fun uniform4iv(location: WebGLUniformLocation?, v: Array)\n fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array)\n fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array)\n fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array)\n fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array)\n fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array)\n fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array)\n fun useProgram(program: WebGLProgram?)\n fun validateProgram(program: WebGLProgram?)\n fun vertexAttrib1f(index: Int, x: Float)\n fun vertexAttrib1fv(index: Int, values: dynamic)\n fun vertexAttrib2f(index: Int, x: Float, y: Float)\n fun vertexAttrib2fv(index: Int, values: dynamic)\n fun vertexAttrib3f(index: Int, x: Float, y: Float, z: Float)\n fun vertexAttrib3fv(index: Int, values: dynamic)\n fun vertexAttrib4f(index: Int, x: Float, y: Float, z: Float, w: Float)\n fun vertexAttrib4fv(index: Int, values: dynamic)\n fun vertexAttribPointer(index: Int, size: Int, type: Int, normalized: Boolean, stride: Int, offset: Int)\n fun viewport(x: Int, y: Int, width: Int, height: Int)\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 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface WebGLContextEventInit : EventInit {\n var statusMessage: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"statusMessage\"] = statusMessage\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Int8Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Int8Array.get(index: Int): Byte = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Int8Array.set(index: Int, value: Byte) { 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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Uint8Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Uint8Array.get(index: Int): Byte = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Uint8Array.set(index: Int, value: Byte) { 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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Uint8ClampedArray\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Uint8ClampedArray.get(index: Int): Byte = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Uint8ClampedArray.set(index: Int, value: Byte) { 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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Int16Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Int16Array.get(index: Int): Short = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Int16Array.set(index: Int, value: Short) { 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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Uint16Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Uint16Array.get(index: Int): Short = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Uint16Array.set(index: Int, value: Short) { 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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Int32Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Int32Array.get(index: Int): Int = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Int32Array.set(index: Int, value: Int) { 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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Uint32Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Uint32Array.get(index: Int): Int = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Uint32Array.set(index: Int, value: Int) { 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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Float32Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Float32Array.get(index: Int): Float = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Float32Array.set(index: Int, value: Float) { 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)\n fun set(array: Array, offset: Int = definedExternally)\n fun subarray(start: Int, end: Int): Float64Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Float64Array.get(index: Int): Double = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Float64Array.set(index: Int, value: Double) { 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)\n fun setUint8(byteOffset: Int, value: Byte)\n fun setInt16(byteOffset: Int, value: Short, littleEndian: Boolean = definedExternally)\n fun setUint16(byteOffset: Int, value: Short, littleEndian: Boolean = definedExternally)\n fun setInt32(byteOffset: Int, value: Int, littleEndian: Boolean = definedExternally)\n fun setUint32(byteOffset: Int, value: Int, littleEndian: Boolean = definedExternally)\n fun setFloat32(byteOffset: Int, value: Float, littleEndian: Boolean = definedExternally)\n fun setFloat64(byteOffset: Int, value: Double, littleEndian: Boolean = definedExternally)\n}\n\npublic external interface BufferDataSource\n\npublic external interface TexImageSource","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom.clipboard\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\n\npublic external interface ClipboardEventInit : EventInit {\n var clipboardData: DataTransfer? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"clipboardData\"] = clipboardData\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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 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 [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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ClipboardPermissionDescriptor(allowWithoutGesture: Boolean? = false): ClipboardPermissionDescriptor {\n val o = js(\"({})\")\n o[\"allowWithoutGesture\"] = allowWithoutGesture\n return o\n}","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom.css\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\n\npublic external abstract class MediaList : ItemArrayLike {\n open var mediaText: String\n fun appendMedium(medium: String)\n fun deleteMedium(medium: String)\n override fun item(index: Int): String?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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)\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 fun item(index: Int): StyleSheet?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 get() = definedExternally\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 fun item(index: Int): CSSRule?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 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\npublic external abstract class CSSImportRule : CSSRule {\n open val href: String\n open val media: MediaList\n open val styleSheet: 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 [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)\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 [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 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 [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 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\npublic external abstract class CSSMarginRule : CSSRule {\n open val name: String\n open val style: CSSStyleDeclaration\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 [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 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 [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 open val parentRule: CSSRule?\n open var cssFloat: 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 open var _dashed_attribute: String\n open var _camel_cased_attribute: String\n open var _webkit_cased_attribute: String\n fun getPropertyValue(property: String): String\n fun getPropertyPriority(property: String): String\n fun setProperty(property: String, value: String, priority: String = definedExternally)\n fun setPropertyValue(property: String, value: String)\n fun setPropertyPriority(property: String, priority: String)\n fun removeProperty(property: String): String\n override fun item(index: Int): String\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun CSSStyleDeclaration.get(index: Int): String? = asDynamic()[index]\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 companion object {\n fun escape(ident: String): String\n }\n}\n\npublic external interface UnionElementOrProcessingInstruction","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom.encryptedmedia\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\n\n/**\n * Exposes the JavaScript [MediaKeySystemConfiguration](https://developer.mozilla.org/en/docs/Web/API/MediaKeySystemConfiguration) to Kotlin\n */\npublic external interface MediaKeySystemConfiguration {\n var label: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var initDataTypes: Array? /* = arrayOf() */\n get() = definedExternally\n set(value) = definedExternally\n var audioCapabilities: Array? /* = arrayOf() */\n get() = definedExternally\n set(value) = definedExternally\n var videoCapabilities: Array? /* = arrayOf() */\n get() = definedExternally\n set(value) = definedExternally\n var distinctiveIdentifier: MediaKeysRequirement? /* = MediaKeysRequirement.OPTIONAL */\n get() = definedExternally\n set(value) = definedExternally\n var persistentState: MediaKeysRequirement? /* = MediaKeysRequirement.OPTIONAL */\n get() = definedExternally\n set(value) = definedExternally\n var sessionTypes: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun MediaKeySystemConfiguration(label: String? = \"\", initDataTypes: Array? = arrayOf(), audioCapabilities: Array? = arrayOf(), videoCapabilities: Array? = arrayOf(), distinctiveIdentifier: MediaKeysRequirement? = MediaKeysRequirement.OPTIONAL, persistentState: MediaKeysRequirement? = MediaKeysRequirement.OPTIONAL, sessionTypes: Array? = undefined): MediaKeySystemConfiguration {\n val o = js(\"({})\")\n o[\"label\"] = label\n o[\"initDataTypes\"] = initDataTypes\n o[\"audioCapabilities\"] = audioCapabilities\n o[\"videoCapabilities\"] = videoCapabilities\n o[\"distinctiveIdentifier\"] = distinctiveIdentifier\n o[\"persistentState\"] = persistentState\n o[\"sessionTypes\"] = sessionTypes\n return o\n}\n\npublic external interface MediaKeySystemMediaCapability {\n var contentType: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var robustness: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun MediaKeySystemMediaCapability(contentType: String? = \"\", robustness: String? = \"\"): MediaKeySystemMediaCapability {\n val o = js(\"({})\")\n o[\"contentType\"] = contentType\n o[\"robustness\"] = robustness\n return o\n}\n\n/**\n * Exposes the JavaScript [MediaKeySystemAccess](https://developer.mozilla.org/en/docs/Web/API/MediaKeySystemAccess) to Kotlin\n */\npublic external abstract class MediaKeySystemAccess {\n open val keySystem: String\n fun getConfiguration(): MediaKeySystemConfiguration\n fun createMediaKeys(): Promise\n}\n\n/**\n * Exposes the JavaScript [MediaKeys](https://developer.mozilla.org/en/docs/Web/API/MediaKeys) to Kotlin\n */\npublic external abstract class MediaKeys {\n fun createSession(sessionType: MediaKeySessionType = definedExternally): MediaKeySession\n fun setServerCertificate(serverCertificate: dynamic): Promise\n}\n\n/**\n * Exposes the JavaScript [MediaKeySession](https://developer.mozilla.org/en/docs/Web/API/MediaKeySession) to Kotlin\n */\npublic external abstract class MediaKeySession : EventTarget {\n open val sessionId: String\n open val expiration: Double\n open val closed: Promise\n open val keyStatuses: MediaKeyStatusMap\n open var onkeystatuseschange: ((Event) -> dynamic)?\n open var onmessage: ((MessageEvent) -> dynamic)?\n fun generateRequest(initDataType: String, initData: dynamic): Promise\n fun load(sessionId: String): Promise\n fun update(response: dynamic): Promise\n fun close(): Promise\n fun remove(): Promise\n}\n\n/**\n * Exposes the JavaScript [MediaKeyStatusMap](https://developer.mozilla.org/en/docs/Web/API/MediaKeyStatusMap) to Kotlin\n */\npublic external abstract class MediaKeyStatusMap {\n open val size: Int\n fun has(keyId: dynamic): Boolean\n fun get(keyId: dynamic): Any?\n}\n\n/**\n * Exposes the JavaScript [MediaKeyMessageEvent](https://developer.mozilla.org/en/docs/Web/API/MediaKeyMessageEvent) to Kotlin\n */\npublic external open class MediaKeyMessageEvent(type: String, eventInitDict: MediaKeyMessageEventInit) : Event {\n open val messageType: MediaKeyMessageType\n open val message: ArrayBuffer\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\npublic external interface MediaKeyMessageEventInit : EventInit {\n var messageType: MediaKeyMessageType?\n var message: ArrayBuffer?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun MediaKeyMessageEventInit(messageType: MediaKeyMessageType?, message: ArrayBuffer?, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaKeyMessageEventInit {\n val o = js(\"({})\")\n o[\"messageType\"] = messageType\n o[\"message\"] = message\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n return o\n}\n\npublic external open class MediaEncryptedEvent(type: String, eventInitDict: MediaEncryptedEventInit = definedExternally) : Event {\n open val initDataType: String\n open val initData: ArrayBuffer?\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\npublic external interface MediaEncryptedEventInit : EventInit {\n var initDataType: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var initData: ArrayBuffer? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun MediaEncryptedEventInit(initDataType: String? = \"\", initData: ArrayBuffer? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaEncryptedEventInit {\n val o = js(\"({})\")\n o[\"initDataType\"] = initDataType\n o[\"initData\"] = initData\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n return o\n}\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface MediaKeysRequirement {\n companion object\n}\n\npublic inline val MediaKeysRequirement.Companion.REQUIRED: MediaKeysRequirement get() = \"required\".asDynamic().unsafeCast()\n\npublic inline val MediaKeysRequirement.Companion.OPTIONAL: MediaKeysRequirement get() = \"optional\".asDynamic().unsafeCast()\n\npublic inline val MediaKeysRequirement.Companion.NOT_ALLOWED: MediaKeysRequirement get() = \"not-allowed\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface MediaKeySessionType {\n companion object\n}\n\npublic inline val MediaKeySessionType.Companion.TEMPORARY: MediaKeySessionType get() = \"temporary\".asDynamic().unsafeCast()\n\npublic inline val MediaKeySessionType.Companion.PERSISTENT_LICENSE: MediaKeySessionType get() = \"persistent-license\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface MediaKeyStatus {\n companion object\n}\n\npublic inline val MediaKeyStatus.Companion.USABLE: MediaKeyStatus get() = \"usable\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyStatus.Companion.EXPIRED: MediaKeyStatus get() = \"expired\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyStatus.Companion.RELEASED: MediaKeyStatus get() = \"released\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyStatus.Companion.OUTPUT_RESTRICTED: MediaKeyStatus get() = \"output-restricted\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyStatus.Companion.OUTPUT_DOWNSCALED: MediaKeyStatus get() = \"output-downscaled\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyStatus.Companion.STATUS_PENDING: MediaKeyStatus get() = \"status-pending\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyStatus.Companion.INTERNAL_ERROR: MediaKeyStatus get() = \"internal-error\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface MediaKeyMessageType {\n companion object\n}\n\npublic inline val MediaKeyMessageType.Companion.LICENSE_REQUEST: MediaKeyMessageType get() = \"license-request\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyMessageType.Companion.LICENSE_RENEWAL: MediaKeyMessageType get() = \"license-renewal\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyMessageType.Companion.LICENSE_RELEASE: MediaKeyMessageType get() = \"license-release\".asDynamic().unsafeCast()\n\npublic inline val MediaKeyMessageType.Companion.INDIVIDUALIZATION_REQUEST: MediaKeyMessageType get() = \"individualization-request\".asDynamic().unsafeCast()","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom.events\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface FocusEventInit : UIEventInit {\n var relatedTarget: EventTarget? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"relatedTarget\"] = relatedTarget\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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 screenX: Int\n open val screenY: Int\n open val clientX: Int\n open val clientY: Int\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 open val region: String?\n open val pageX: Double\n open val pageY: Double\n open val x: Double\n open val y: Double\n open val offsetX: Double\n open val offsetY: Double\n fun getModifierState(keyArg: String): Boolean\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\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 var region: String? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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, region: String? = 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 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[\"region\"] = region\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 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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 val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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, region: String? = 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 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[\"region\"] = region\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 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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 val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface CompositionEventInit : UIEventInit {\n var data: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"data\"] = data\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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()\n fun stopImmediatePropagation()\n fun preventDefault()\n fun initEvent(type: String, bubbles: Boolean, cancelable: Boolean)\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)\n fun addEventListener(type: String, callback: ((Event) -> Unit)?, options: dynamic = definedExternally)\n fun removeEventListener(type: String, callback: EventListener?, options: dynamic = definedExternally)\n fun removeEventListener(type: String, callback: ((Event) -> Unit)?, options: dynamic = definedExternally)\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)\n}","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.encryptedmedia.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.mediasource.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\npublic external abstract class HTMLAllCollection {\n open val length: Int\n fun item(nameOrIndex: String = definedExternally): UnionElementOrHTMLCollection?\n fun namedItem(name: String): UnionElementOrHTMLCollection?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun HTMLAllCollection.get(index: Int): Element? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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\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)\n fun remove(index: Int)\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun HTMLOptionsCollection.set(index: Int, option: HTMLOptionElement?) { 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, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, ElementCSSInlineStyle {\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()\n fun focus()\n fun blur()\n fun forceSpellCheck()\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\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 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\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun DOMStringMap.get(name: String): String? = asDynamic()[name]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun DOMStringMap.set(name: String, value: String) { 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 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\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 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\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 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\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 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\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 href: String\n open var crossOrigin: String?\n open var rel: String\n 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 open var scope: String\n open var workerType: WorkerType\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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\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 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\n/**\n * Exposes the JavaScript [HTMLImageElement](https://developer.mozilla.org/en/docs/Web/API/HTMLImageElement) to Kotlin\n */\npublic external abstract class HTMLImageElement : HTMLElement, HTMLOrSVGImageElement, TexImageSource {\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 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\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 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\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 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\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)\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\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 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\n/**\n * Exposes the JavaScript [HTMLVideoElement](https://developer.mozilla.org/en/docs/Web/API/HTMLVideoElement) to Kotlin\n */\npublic external abstract class HTMLVideoElement : HTMLMediaElement, CanvasImageSource, 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 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 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\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 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 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\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 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\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: MediaProvider?\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 open val mediaKeys: MediaKeys?\n open var onencrypted: ((Event) -> dynamic)?\n open var onwaitingforkey: ((Event) -> dynamic)?\n fun load()\n fun canPlayType(type: String): CanPlayTypeResult\n fun fastSeek(time: Double)\n fun getStartDate(): dynamic\n fun play(): Promise\n fun pause()\n fun addTextTrack(kind: TextTrackKind, label: String = definedExternally, language: String = definedExternally): TextTrack\n fun setMediaKeys(mediaKeys: MediaKeys?): Promise\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 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\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\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 open val sourceBuffer: SourceBuffer?\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\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 open val sourceBuffer: SourceBuffer?\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\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 open val sourceBuffer: SourceBuffer?\n fun addCue(cue: TextTrackCue)\n fun removeCue(cue: TextTrackCue)\n}\n\npublic external abstract class TextTrackCueList {\n open val length: Int\n fun getCueById(id: String): TextTrackCue?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface TrackEventInit : EventInit {\n var track: UnionAudioTrackOrTextTrackOrVideoTrack? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"track\"] = track\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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 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\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 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\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()\n fun createTHead(): HTMLTableSectionElement\n fun deleteTHead()\n fun createTFoot(): HTMLTableSectionElement\n fun deleteTFoot()\n fun createTBody(): HTMLTableSectionElement\n fun insertRow(index: Int = definedExternally): HTMLTableRowElement\n fun deleteRow(index: Int)\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\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 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\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 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\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)\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\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)\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\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 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\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()\n fun reset()\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\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\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun HTMLFormElement.get(index: Int): Element? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 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\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)\n fun stepDown(n: Int = definedExternally)\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String)\n fun select()\n fun setRangeText(replacement: String)\n fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode = definedExternally)\n fun setSelectionRange(start: Int, end: Int, direction: String = definedExternally)\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\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)\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\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 fun namedItem(name: String): HTMLOptionElement?\n fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: dynamic = definedExternally)\n fun remove(index: Int)\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String)\n override fun item(index: Int): Element?\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\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun HTMLSelectElement.get(index: Int): Element? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun HTMLSelectElement.set(index: Int, option: HTMLOptionElement?) { 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 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\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 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\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 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\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)\n fun select()\n fun setRangeText(replacement: String)\n fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode = definedExternally)\n fun setSelectionRange(start: Int, end: Int, direction: String = definedExternally)\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\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)\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\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)\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\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 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\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 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\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)\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\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 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\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 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 abstract class HTMLMenuElement : HTMLElement {\n open var type: String\n open var label: String\n open var compact: Boolean\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 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 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 open class RelatedEvent(type: String, eventInitDict: RelatedEventInit = definedExternally) : Event {\n open val relatedTarget: EventTarget?\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\npublic external interface RelatedEventInit : EventInit {\n var relatedTarget: EventTarget? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"relatedTarget\"] = relatedTarget\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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)\n fun showModal(anchor: UnionElementOrMouseEvent = definedExternally)\n fun close(returnValue: String = definedExternally)\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\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 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\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 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\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 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 AssignedNodesOptions {\n var flatten: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun AssignedNodesOptions(flatten: Boolean? = false): AssignedNodesOptions {\n val o = js(\"({})\")\n o[\"flatten\"] = flatten\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, CanvasImageSource, 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)\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 CanvasRenderingContext2DSettings {\n var alpha: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun CanvasRenderingContext2DSettings(alpha: Boolean? = true): CanvasRenderingContext2DSettings {\n val o = js(\"({})\")\n o[\"alpha\"] = alpha\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()\n fun restore()\n}\n\npublic external interface CanvasTransform {\n fun scale(x: Double, y: Double)\n fun rotate(angle: Double)\n fun translate(x: Double, y: Double)\n fun transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double)\n fun getTransform(): DOMMatrix\n fun setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double)\n fun setTransform(transform: dynamic = definedExternally)\n fun resetTransform()\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 get() = definedExternally\n set(value) = definedExternally\n var fillStyle: dynamic\n get() = definedExternally\n set(value) = definedExternally\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: CanvasImageSource, 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)\n fun fillRect(x: Double, y: Double, w: Double, h: Double)\n fun strokeRect(x: Double, y: Double, w: Double, h: Double)\n}\n\npublic external interface CanvasDrawPath {\n fun beginPath()\n fun fill(fillRule: CanvasFillRule = definedExternally)\n fun fill(path: Path2D, fillRule: CanvasFillRule = definedExternally)\n fun stroke()\n fun stroke(path: Path2D)\n fun clip(fillRule: CanvasFillRule = definedExternally)\n fun clip(path: Path2D, fillRule: CanvasFillRule = definedExternally)\n fun resetClip()\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)\n fun drawFocusIfNeeded(path: Path2D, element: Element)\n fun scrollPathIntoView()\n fun scrollPathIntoView(path: Path2D)\n}\n\npublic external interface CanvasText {\n fun fillText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally)\n fun strokeText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally)\n fun measureText(text: String): TextMetrics\n}\n\npublic external interface CanvasDrawImage {\n fun drawImage(image: CanvasImageSource, dx: Double, dy: Double)\n fun drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double)\n fun drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double)\n}\n\npublic external interface CanvasHitRegion {\n fun addHitRegion(options: HitRegionOptions = definedExternally)\n fun removeHitRegion(id: String)\n fun clearHitRegions()\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)\n fun putImageData(imagedata: ImageData, dx: Double, dy: Double, dirtyX: Double, dirtyY: Double, dirtyWidth: Double, dirtyHeight: Double)\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)\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()\n fun moveTo(x: Double, y: Double)\n fun lineTo(x: Double, y: Double)\n fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double)\n fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double)\n fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double)\n fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double)\n fun rect(x: Double, y: Double, w: Double, h: Double)\n fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = definedExternally)\n fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = definedExternally)\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)\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)\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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 : ImageBitmapSource, 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)\n override fun closePath()\n override fun moveTo(x: Double, y: Double)\n override fun lineTo(x: Double, y: Double)\n override fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double)\n override fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double)\n override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double)\n override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double)\n override fun rect(x: Double, y: Double, w: Double, h: Double)\n override fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* = definedExternally */)\n override fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* = definedExternally */)\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?)\n}\n\npublic external interface ImageBitmapRenderingContextSettings {\n var alpha: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ImageBitmapRenderingContextSettings(alpha: Boolean? = true): ImageBitmapRenderingContextSettings {\n val o = js(\"({})\")\n o[\"alpha\"] = alpha\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)\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ElementDefinitionOptions(extends: String? = undefined): ElementDefinitionOptions {\n val o = js(\"({})\")\n o[\"extends\"] = extends\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)\n fun getData(format: String): String\n fun setData(format: String, data: String)\n fun clearData(format: String = definedExternally)\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)\n fun clear()\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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)?)\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface DragEventInit : MouseEventInit {\n var dataTransfer: DataTransfer? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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, region: String? = 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 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[\"region\"] = region\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 return o\n}\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, UnionMessagePortOrWindowProxy {\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()\n fun stop()\n fun focus()\n fun blur()\n fun open(url: String = definedExternally, target: String = definedExternally, features: String = definedExternally): Window?\n fun alert()\n fun alert(message: String)\n fun confirm(message: String = definedExternally): Boolean\n fun prompt(message: String = definedExternally, default: String = definedExternally): String?\n fun print()\n fun requestAnimationFrame(callback: (Double) -> Unit): Int\n fun cancelAnimationFrame(handle: Int)\n fun postMessage(message: Any?, targetOrigin: String, transfer: Array = definedExternally)\n fun captureEvents()\n fun releaseEvents()\n fun matchMedia(query: String): MediaQueryList\n fun moveTo(x: Int, y: Int)\n fun moveBy(x: Int, y: Int)\n fun resizeTo(x: Int, y: Int)\n fun resizeBy(x: Int, y: Int)\n fun scroll(options: ScrollToOptions = definedExternally)\n fun scroll(x: Double, y: Double)\n fun scrollTo(options: ScrollToOptions = definedExternally)\n fun scrollTo(x: Double, y: Double)\n fun scrollBy(options: ScrollToOptions = definedExternally)\n fun scrollBy(x: Double, y: Double)\n fun getComputedStyle(elt: Element, pseudoElt: String? = definedExternally): CSSStyleDeclaration\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Window.get(name: String): dynamic = asDynamic()[name]\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)\n fun back()\n fun forward()\n fun pushState(data: Any?, title: String, url: String? = definedExternally)\n fun replaceState(data: Any?, title: String, url: String? = definedExternally)\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)\n fun replace(url: String)\n fun reload()\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface PopStateEventInit : EventInit {\n var state: Any? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"state\"] = state\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"oldURL\"] = oldURL\n o[\"newURL\"] = newURL\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface PageTransitionEventInit : EventInit {\n var persisted: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"persisted\"] = persisted\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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()\n fun abort()\n fun swapCache()\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface PromiseRejectionEventInit : EventInit {\n var promise: Promise?\n var reason: Any?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"promise\"] = promise\n o[\"reason\"] = reason\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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 onabort: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onblur: ((FocusEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var oncancel: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var oncanplay: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var oncanplaythrough: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onchange: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onclick: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onclose: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var oncontextmenu: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var oncuechange: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondblclick: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondrag: ((DragEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondragend: ((DragEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondragenter: ((DragEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondragexit: ((DragEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondragleave: ((DragEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondragover: ((DragEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondragstart: ((DragEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondrop: ((DragEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ondurationchange: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onemptied: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onended: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onfocus: ((FocusEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var oninput: ((InputEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var oninvalid: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onkeydown: ((KeyboardEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onkeypress: ((KeyboardEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onkeyup: ((KeyboardEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onload: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onloadeddata: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onloadedmetadata: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onloadend: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onloadstart: ((ProgressEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onmousedown: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onmouseenter: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onmouseleave: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onmousemove: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onmouseout: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onmouseover: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onmouseup: ((MouseEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onwheel: ((WheelEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpause: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onplay: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onplaying: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onprogress: ((ProgressEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onratechange: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onreset: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onresize: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onscroll: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onseeked: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onseeking: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onselect: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onshow: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onstalled: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onsubmit: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onsuspend: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ontimeupdate: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ontoggle: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onvolumechange: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onwaiting: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ongotpointercapture: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onlostpointercapture: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpointerdown: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpointermove: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpointerup: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpointercancel: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpointerover: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpointerout: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpointerenter: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpointerleave: ((PointerEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\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 get() = definedExternally\n set(value) = definedExternally\n var onbeforeprint: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onbeforeunload: ((BeforeUnloadEvent) -> String?)?\n get() = definedExternally\n set(value) = definedExternally\n var onhashchange: ((HashChangeEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onlanguagechange: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onmessage: ((MessageEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onoffline: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var ononline: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpagehide: ((PageTransitionEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpageshow: ((PageTransitionEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpopstate: ((PopStateEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onrejectionhandled: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onstorage: ((StorageEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onunhandledrejection: ((PromiseRejectionEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onunload: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n}\n\npublic external interface DocumentAndElementEventHandlers {\n var oncopy: ((ClipboardEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var oncut: ((ClipboardEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\n var onpaste: ((ClipboardEvent) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\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 origin: String\n val caches: CacheStorage\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)\n fun setInterval(handler: dynamic, timeout: Int = definedExternally, vararg arguments: Any?): Int\n fun clearInterval(handle: Int = definedExternally)\n fun createImageBitmap(image: ImageBitmapSource, options: ImageBitmapOptions = definedExternally): Promise\n fun createImageBitmap(image: ImageBitmapSource, sx: Int, sy: Int, sw: Int, sh: Int, options: ImageBitmapOptions = definedExternally): Promise\n fun fetch(input: dynamic, init: RequestInit = definedExternally): Promise\n}\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 clipboard: Clipboard\n open val mediaDevices: MediaDevices\n open val maxTouchPoints: Int\n open val serviceWorker: ServiceWorkerContainer\n fun requestMediaKeySystemAccess(keySystem: String, supportedConfigurations: Array): Promise\n fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (dynamic) -> Unit)\n fun vibrate(pattern: dynamic): Boolean\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)\n fun registerContentHandler(mimeType: String, url: String, title: String)\n fun isProtocolHandlerRegistered(scheme: String, url: String): String\n fun isContentHandlerRegistered(mimeType: String, url: String): String\n fun unregisterProtocolHandler(scheme: String, url: String)\n fun unregisterContentHandler(mimeType: String, url: String)\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 fun refresh(reload: Boolean = definedExternally)\n override fun item(index: Int): Plugin?\n fun namedItem(name: String): Plugin?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun PluginArray.get(index: Int): Plugin? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 fun item(index: Int): MimeType?\n fun namedItem(name: String): MimeType?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MimeTypeArray.get(index: Int): MimeType? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 fun item(index: Int): MimeType?\n fun namedItem(name: String): MimeType?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Plugin.get(index: Int): MimeType? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 : CanvasImageSource, TexImageSource {\n open val width: Int\n open val height: Int\n fun close()\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"imageOrientation\"] = imageOrientation\n o[\"premultiplyAlpha\"] = premultiplyAlpha\n o[\"colorSpaceConversion\"] = colorSpaceConversion\n o[\"resizeWidth\"] = resizeWidth\n o[\"resizeHeight\"] = resizeHeight\n o[\"resizeQuality\"] = resizeQuality\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: UnionMessagePortOrWindowProxy?\n open val ports: Array\n fun initMessageEvent(type: String, bubbles: Boolean, cancelable: Boolean, data: Any?, origin: String, lastEventId: String, source: UnionMessagePortOrWindowProxy?, ports: Array)\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\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: UnionMessagePortOrWindowProxy? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var ports: Array? /* = arrayOf() */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun MessageEventInit(data: Any? = null, origin: String? = \"\", lastEventId: String? = \"\", source: UnionMessagePortOrWindowProxy? = null, ports: Array? = arrayOf(), bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MessageEventInit {\n val o = js(\"({})\")\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 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()\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun EventSourceInit(withCredentials: Boolean? = false): EventSourceInit {\n val o = js(\"({})\")\n o[\"withCredentials\"] = withCredentials\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: Number\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)\n fun send(data: String)\n fun send(data: Blob)\n fun send(data: ArrayBuffer)\n fun send(data: ArrayBufferView)\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"wasClean\"] = wasClean\n o[\"code\"] = code\n o[\"reason\"] = reason\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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, UnionMessagePortOrWindowProxy, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker {\n open var onmessage: ((MessageEvent) -> dynamic)?\n fun postMessage(message: Any?, transfer: Array = definedExternally)\n fun start()\n fun close()\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?)\n fun close()\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)\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)\n fun close()\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()\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 get() = definedExternally\n set(value) = definedExternally\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()\n fun postMessage(message: Any?, transfer: Array = definedExternally)\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun WorkerOptions(type: WorkerType? = WorkerType.CLASSIC, credentials: RequestCredentials? = RequestCredentials.OMIT): WorkerOptions {\n val o = js(\"({})\")\n o[\"type\"] = type\n o[\"credentials\"] = credentials\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: Number\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 val 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 removeItem(key: String)\n fun clear()\n fun getItem(key: String): String?\n fun setItem(key: String, value: String)\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Storage.get(key: String): String? = asDynamic()[key]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Storage.set(key: String, value: String) { 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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 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\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()\n fun stop()\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\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 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 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 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 abstract class HTMLDirectoryElement : HTMLElement {\n open var compact: Boolean\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\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 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 External {\n fun AddSearchProvider()\n fun IsSearchProviderInstalled()\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun EventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventInit {\n val o = js(\"({})\")\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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?)\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\npublic external interface CustomEventInit : EventInit {\n var detail: Any? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n return o\n}\n\npublic external interface EventListenerOptions {\n var capture: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun EventListenerOptions(capture: Boolean? = false): EventListenerOptions {\n val o = js(\"({})\")\n o[\"capture\"] = capture\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun AddEventListenerOptions(passive: Boolean? = false, once: Boolean? = false, capture: Boolean? = false): AddEventListenerOptions {\n val o = js(\"({})\")\n o[\"passive\"] = passive\n o[\"once\"] = once\n o[\"capture\"] = capture\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 get() = definedExternally\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 get() = definedExternally\n val lastElementChild: Element?\n get() = definedExternally\n val childElementCount: Int\n fun prepend(vararg nodes: dynamic)\n fun append(vararg nodes: dynamic)\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 get() = definedExternally\n val nextElementSibling: Element?\n get() = definedExternally\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)\n fun after(vararg nodes: dynamic)\n fun replaceWith(vararg nodes: dynamic)\n fun remove()\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 get() = definedExternally\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 fun item(index: Int): Node?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 : ItemArrayLike, UnionElementOrHTMLCollection {\n override fun item(index: Int): Element?\n fun namedItem(name: String): Element?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun HTMLCollection.get(index: Int): Element? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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)\n fun disconnect()\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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()\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun GetRootNodeOptions(composed: Boolean? = false): GetRootNodeOptions {\n val o = js(\"({})\")\n o[\"composed\"] = composed\n return o\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 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 location: Location?\n var domain: String\n open val referrer: String\n var cookie: String\n open val lastModified: String\n open val readyState: DocumentReadyState\n var title: String\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 open val activeElement: Element?\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 scrollingElement: Element?\n open val styleSheets: StyleSheetList\n open val rootElement: SVGSVGElement?\n open val fullscreenEnabled: Boolean\n open val fullscreen: Boolean\n var onfullscreenchange: ((Event) -> dynamic)?\n var onfullscreenerror: ((Event) -> 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 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 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 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 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()\n fun write(vararg text: String)\n fun writeln(vararg text: String)\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()\n fun captureEvents()\n fun releaseEvents()\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 fun createTouch(view: Window, target: EventTarget, identifier: Int, pageX: Int, pageY: Int, screenX: Int, screenY: Int): Touch\n fun createTouchList(vararg touches: Touch): TouchList\n fun exitFullscreen(): Promise\n override fun getElementById(elementId: String): Element?\n override fun prepend(vararg nodes: dynamic)\n override fun append(vararg nodes: dynamic)\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 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\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Document.get(name: String): dynamic = asDynamic()[name]\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 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 ElementCreationOptions {\n var `is`: String?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ElementCreationOptions(`is`: String? = undefined): ElementCreationOptions {\n val o = js(\"({})\")\n o[\"is\"] = `is`\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 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\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)\n override fun append(vararg nodes: dynamic)\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\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\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\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\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, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent, UnionElementOrProcessingInstruction {\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 open var innerHTML: String\n open var outerHTML: String\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)\n fun setAttributeNS(namespace: String?, qualifiedName: String, value: String)\n fun removeAttribute(qualifiedName: String)\n fun removeAttributeNS(namespace: String?, localName: String)\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)\n fun getClientRects(): Array\n fun getBoundingClientRect(): DOMRect\n fun scrollIntoView()\n fun scrollIntoView(arg: dynamic)\n fun scroll(options: ScrollToOptions = definedExternally)\n fun scroll(x: Double, y: Double)\n fun scrollTo(options: ScrollToOptions = definedExternally)\n fun scrollTo(x: Double, y: Double)\n fun scrollBy(options: ScrollToOptions = definedExternally)\n fun scrollBy(x: Double, y: Double)\n fun insertAdjacentHTML(position: String, text: String)\n fun setPointerCapture(pointerId: Int)\n fun releasePointerCapture(pointerId: Int)\n fun hasPointerCapture(pointerId: Int): Boolean\n fun requestFullscreen(): Promise\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 ShadowRootInit {\n var mode: ShadowRootMode?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ShadowRootInit(mode: ShadowRootMode?): ShadowRootInit {\n val o = js(\"({})\")\n o[\"mode\"] = mode\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 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 override fun item(index: Int): Attr?\n fun getNamedItem(qualifiedName: String): Attr?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun NamedNodeMap.get(index: Int): Attr? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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 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\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)\n fun insertData(offset: Int, data: String)\n fun deleteData(offset: Int, count: Int)\n fun replaceData(offset: Int, count: Int, data: String)\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\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 assignedSlot: HTMLSlotElement?\n override val previousElementSibling: Element?\n override val nextElementSibling: Element?\n fun splitText(offset: Int): Text\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 override fun before(vararg nodes: dynamic)\n override fun after(vararg nodes: dynamic)\n override fun replaceWith(vararg nodes: dynamic)\n override fun remove()\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\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 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\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 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\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)\n override fun after(vararg nodes: dynamic)\n override fun replaceWith(vararg nodes: dynamic)\n override fun remove()\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\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 setStart(node: Node, offset: Int)\n fun setEnd(node: Node, offset: Int)\n fun setStartBefore(node: Node)\n fun setStartAfter(node: Node)\n fun setEndBefore(node: Node)\n fun setEndAfter(node: Node)\n fun collapse(toStart: Boolean = definedExternally)\n fun selectNode(node: Node)\n fun selectNodeContents(node: Node)\n fun compareBoundaryPoints(how: Short, sourceRange: Range): Short\n fun deleteContents()\n fun extractContents(): DocumentFragment\n fun cloneContents(): DocumentFragment\n fun insertNode(node: Node)\n fun surroundContents(newParent: Node)\n fun cloneRange(): Range\n fun detach()\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 fun createContextualFragment(fragment: String): DocumentFragment\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()\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 */\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\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 open var value: String\n fun contains(token: String): Boolean\n fun add(vararg tokens: String)\n fun remove(vararg tokens: String)\n fun toggle(token: String, force: Boolean = definedExternally): Boolean\n fun replace(token: String, newToken: String)\n fun supports(token: String): Boolean\n override fun item(index: Int): String?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"x\"] = x\n o[\"y\"] = y\n o[\"z\"] = z\n o[\"w\"] = w\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"x\"] = x\n o[\"y\"] = y\n o[\"width\"] = width\n o[\"height\"] = height\n return o\n}\n\npublic external interface DOMRectList : ItemArrayLike {\n override fun item(index: Int): DOMRect?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ScrollOptions(behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollOptions {\n val o = js(\"({})\")\n o[\"behavior\"] = behavior\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ScrollToOptions(left: Double? = undefined, top: Double? = undefined, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollToOptions {\n val o = js(\"({})\")\n o[\"left\"] = left\n o[\"top\"] = top\n o[\"behavior\"] = behavior\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?)\n fun addListener(listener: ((Event) -> Unit)?)\n fun removeListener(listener: EventListener?)\n fun removeListener(listener: ((Event) -> 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"media\"] = media\n o[\"matches\"] = matches\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"block\"] = block\n o[\"inline\"] = inline\n o[\"behavior\"] = behavior\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun BoxQuadOptions(box: CSSBoxType? = CSSBoxType.BORDER, relativeTo: dynamic = undefined): BoxQuadOptions {\n val o = js(\"({})\")\n o[\"box\"] = box\n o[\"relativeTo\"] = relativeTo\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ConvertCoordinateOptions(fromBox: CSSBoxType? = CSSBoxType.BORDER, toBox: CSSBoxType? = CSSBoxType.BORDER): ConvertCoordinateOptions {\n val o = js(\"({})\")\n o[\"fromBox\"] = fromBox\n o[\"toBox\"] = toBox\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\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 identifier: Int\n open val target: EventTarget\n open val screenX: Int\n open val screenY: Int\n open val clientX: Int\n open val clientY: Int\n open val pageX: Int\n open val pageY: Int\n open val region: String?\n}\n\npublic external abstract class TouchList : ItemArrayLike {\n override fun item(index: Int): Touch?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun TouchList.get(index: Int): Touch? = asDynamic()[index]\n\npublic external open class TouchEvent : UIEvent {\n open val touches: TouchList\n open val targetTouches: TouchList\n open val changedTouches: TouchList\n open val altKey: Boolean\n open val metaKey: Boolean\n open val ctrlKey: Boolean\n open val shiftKey: Boolean\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 [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 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 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 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 val style: CSSStyleDeclaration\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 fun prepend(vararg nodes: dynamic)\n override fun append(vararg nodes: dynamic)\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n override fun before(vararg nodes: dynamic)\n override fun after(vararg nodes: dynamic)\n override fun replaceWith(vararg nodes: dynamic)\n override fun remove()\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 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 open class Audio(src: String = definedExternally) : HTMLAudioElement {\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 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 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 val style: CSSStyleDeclaration\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 fun prepend(vararg nodes: dynamic)\n override fun append(vararg nodes: dynamic)\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n override fun before(vararg nodes: dynamic)\n override fun after(vararg nodes: dynamic)\n override fun replaceWith(vararg nodes: dynamic)\n override fun remove()\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 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 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\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 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 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 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 val style: CSSStyleDeclaration\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 fun prepend(vararg nodes: dynamic)\n override fun append(vararg nodes: dynamic)\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n override fun before(vararg nodes: dynamic)\n override fun after(vararg nodes: dynamic)\n override fun replaceWith(vararg nodes: dynamic)\n override fun remove()\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 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 UnionElementOrHTMLCollection\n\npublic external interface UnionElementOrRadioNodeList\n\npublic external interface UnionHTMLOptGroupElementOrHTMLOptionElement\n\npublic external interface UnionAudioTrackOrTextTrackOrVideoTrack\n\npublic external interface UnionElementOrMouseEvent\n\npublic external interface UnionMessagePortOrWindowProxy\n\npublic external interface MediaProvider\n\npublic external interface RenderingContext\n\npublic external interface HTMLOrSVGImageElement : CanvasImageSource\n\npublic external interface CanvasImageSource : ImageBitmapSource\n\npublic external interface ImageBitmapSource\n\npublic external interface HTMLOrSVGScriptElement\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface DocumentReadyState {\n companion object\n}\n\npublic inline val DocumentReadyState.Companion.LOADING: DocumentReadyState get() = \"loading\".asDynamic().unsafeCast()\n\npublic inline val DocumentReadyState.Companion.INTERACTIVE: DocumentReadyState get() = \"interactive\".asDynamic().unsafeCast()\n\npublic inline val DocumentReadyState.Companion.COMPLETE: DocumentReadyState get() = \"complete\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface CanPlayTypeResult {\n companion object\n}\n\npublic inline val CanPlayTypeResult.Companion.EMPTY: CanPlayTypeResult get() = \"\".asDynamic().unsafeCast()\n\npublic inline val CanPlayTypeResult.Companion.MAYBE: CanPlayTypeResult get() = \"maybe\".asDynamic().unsafeCast()\n\npublic inline val CanPlayTypeResult.Companion.PROBABLY: CanPlayTypeResult get() = \"probably\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface TextTrackMode {\n companion object\n}\n\npublic inline val TextTrackMode.Companion.DISABLED: TextTrackMode get() = \"disabled\".asDynamic().unsafeCast()\n\npublic inline val TextTrackMode.Companion.HIDDEN: TextTrackMode get() = \"hidden\".asDynamic().unsafeCast()\n\npublic inline val TextTrackMode.Companion.SHOWING: TextTrackMode get() = \"showing\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface TextTrackKind {\n companion object\n}\n\npublic inline val TextTrackKind.Companion.SUBTITLES: TextTrackKind get() = \"subtitles\".asDynamic().unsafeCast()\n\npublic inline val TextTrackKind.Companion.CAPTIONS: TextTrackKind get() = \"captions\".asDynamic().unsafeCast()\n\npublic inline val TextTrackKind.Companion.DESCRIPTIONS: TextTrackKind get() = \"descriptions\".asDynamic().unsafeCast()\n\npublic inline val TextTrackKind.Companion.CHAPTERS: TextTrackKind get() = \"chapters\".asDynamic().unsafeCast()\n\npublic inline val TextTrackKind.Companion.METADATA: TextTrackKind get() = \"metadata\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface SelectionMode {\n companion object\n}\n\npublic inline val SelectionMode.Companion.SELECT: SelectionMode get() = \"select\".asDynamic().unsafeCast()\n\npublic inline val SelectionMode.Companion.START: SelectionMode get() = \"start\".asDynamic().unsafeCast()\n\npublic inline val SelectionMode.Companion.END: SelectionMode get() = \"end\".asDynamic().unsafeCast()\n\npublic inline val SelectionMode.Companion.PRESERVE: SelectionMode get() = \"preserve\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface CanvasFillRule {\n companion object\n}\n\npublic inline val CanvasFillRule.Companion.NONZERO: CanvasFillRule get() = \"nonzero\".asDynamic().unsafeCast()\n\npublic inline val CanvasFillRule.Companion.EVENODD: CanvasFillRule get() = \"evenodd\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ImageSmoothingQuality {\n companion object\n}\n\npublic inline val ImageSmoothingQuality.Companion.LOW: ImageSmoothingQuality get() = \"low\".asDynamic().unsafeCast()\n\npublic inline val ImageSmoothingQuality.Companion.MEDIUM: ImageSmoothingQuality get() = \"medium\".asDynamic().unsafeCast()\n\npublic inline val ImageSmoothingQuality.Companion.HIGH: ImageSmoothingQuality get() = \"high\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface CanvasLineCap {\n companion object\n}\n\npublic inline val CanvasLineCap.Companion.BUTT: CanvasLineCap get() = \"butt\".asDynamic().unsafeCast()\n\npublic inline val CanvasLineCap.Companion.ROUND: CanvasLineCap get() = \"round\".asDynamic().unsafeCast()\n\npublic inline val CanvasLineCap.Companion.SQUARE: CanvasLineCap get() = \"square\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface CanvasLineJoin {\n companion object\n}\n\npublic inline val CanvasLineJoin.Companion.ROUND: CanvasLineJoin get() = \"round\".asDynamic().unsafeCast()\n\npublic inline val CanvasLineJoin.Companion.BEVEL: CanvasLineJoin get() = \"bevel\".asDynamic().unsafeCast()\n\npublic inline val CanvasLineJoin.Companion.MITER: CanvasLineJoin get() = \"miter\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface CanvasTextAlign {\n companion object\n}\n\npublic inline val CanvasTextAlign.Companion.START: CanvasTextAlign get() = \"start\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextAlign.Companion.END: CanvasTextAlign get() = \"end\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextAlign.Companion.LEFT: CanvasTextAlign get() = \"left\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextAlign.Companion.RIGHT: CanvasTextAlign get() = \"right\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextAlign.Companion.CENTER: CanvasTextAlign get() = \"center\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface CanvasTextBaseline {\n companion object\n}\n\npublic inline val CanvasTextBaseline.Companion.TOP: CanvasTextBaseline get() = \"top\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextBaseline.Companion.HANGING: CanvasTextBaseline get() = \"hanging\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextBaseline.Companion.MIDDLE: CanvasTextBaseline get() = \"middle\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextBaseline.Companion.ALPHABETIC: CanvasTextBaseline get() = \"alphabetic\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextBaseline.Companion.IDEOGRAPHIC: CanvasTextBaseline get() = \"ideographic\".asDynamic().unsafeCast()\n\npublic inline val CanvasTextBaseline.Companion.BOTTOM: CanvasTextBaseline get() = \"bottom\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface CanvasDirection {\n companion object\n}\n\npublic inline val CanvasDirection.Companion.LTR: CanvasDirection get() = \"ltr\".asDynamic().unsafeCast()\n\npublic inline val CanvasDirection.Companion.RTL: CanvasDirection get() = \"rtl\".asDynamic().unsafeCast()\n\npublic inline val CanvasDirection.Companion.INHERIT: CanvasDirection get() = \"inherit\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ScrollRestoration {\n companion object\n}\n\npublic inline val ScrollRestoration.Companion.AUTO: ScrollRestoration get() = \"auto\".asDynamic().unsafeCast()\n\npublic inline val ScrollRestoration.Companion.MANUAL: ScrollRestoration get() = \"manual\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ImageOrientation {\n companion object\n}\n\npublic inline val ImageOrientation.Companion.NONE: ImageOrientation get() = \"none\".asDynamic().unsafeCast()\n\npublic inline val ImageOrientation.Companion.FLIPY: ImageOrientation get() = \"flipY\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface PremultiplyAlpha {\n companion object\n}\n\npublic inline val PremultiplyAlpha.Companion.NONE: PremultiplyAlpha get() = \"none\".asDynamic().unsafeCast()\n\npublic inline val PremultiplyAlpha.Companion.PREMULTIPLY: PremultiplyAlpha get() = \"premultiply\".asDynamic().unsafeCast()\n\npublic inline val PremultiplyAlpha.Companion.DEFAULT: PremultiplyAlpha get() = \"default\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ColorSpaceConversion {\n companion object\n}\n\npublic inline val ColorSpaceConversion.Companion.NONE: ColorSpaceConversion get() = \"none\".asDynamic().unsafeCast()\n\npublic inline val ColorSpaceConversion.Companion.DEFAULT: ColorSpaceConversion get() = \"default\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ResizeQuality {\n companion object\n}\n\npublic inline val ResizeQuality.Companion.PIXELATED: ResizeQuality get() = \"pixelated\".asDynamic().unsafeCast()\n\npublic inline val ResizeQuality.Companion.LOW: ResizeQuality get() = \"low\".asDynamic().unsafeCast()\n\npublic inline val ResizeQuality.Companion.MEDIUM: ResizeQuality get() = \"medium\".asDynamic().unsafeCast()\n\npublic inline val ResizeQuality.Companion.HIGH: ResizeQuality get() = \"high\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface BinaryType {\n companion object\n}\n\npublic inline val BinaryType.Companion.BLOB: BinaryType get() = \"blob\".asDynamic().unsafeCast()\n\npublic inline val BinaryType.Companion.ARRAYBUFFER: BinaryType get() = \"arraybuffer\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface WorkerType {\n companion object\n}\n\npublic inline val WorkerType.Companion.CLASSIC: WorkerType get() = \"classic\".asDynamic().unsafeCast()\n\npublic inline val WorkerType.Companion.MODULE: WorkerType get() = \"module\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ShadowRootMode {\n companion object\n}\n\npublic inline val ShadowRootMode.Companion.OPEN: ShadowRootMode get() = \"open\".asDynamic().unsafeCast()\n\npublic inline val ShadowRootMode.Companion.CLOSED: ShadowRootMode get() = \"closed\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ScrollBehavior {\n companion object\n}\n\npublic inline val ScrollBehavior.Companion.AUTO: ScrollBehavior get() = \"auto\".asDynamic().unsafeCast()\n\npublic inline val ScrollBehavior.Companion.INSTANT: ScrollBehavior get() = \"instant\".asDynamic().unsafeCast()\n\npublic inline val ScrollBehavior.Companion.SMOOTH: ScrollBehavior get() = \"smooth\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ScrollLogicalPosition {\n companion object\n}\n\npublic inline val ScrollLogicalPosition.Companion.START: ScrollLogicalPosition get() = \"start\".asDynamic().unsafeCast()\n\npublic inline val ScrollLogicalPosition.Companion.CENTER: ScrollLogicalPosition get() = \"center\".asDynamic().unsafeCast()\n\npublic inline val ScrollLogicalPosition.Companion.END: ScrollLogicalPosition get() = \"end\".asDynamic().unsafeCast()\n\npublic inline val ScrollLogicalPosition.Companion.NEAREST: ScrollLogicalPosition get() = \"nearest\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface CSSBoxType {\n companion object\n}\n\npublic inline val CSSBoxType.Companion.MARGIN: CSSBoxType get() = \"margin\".asDynamic().unsafeCast()\n\npublic inline val CSSBoxType.Companion.BORDER: CSSBoxType get() = \"border\".asDynamic().unsafeCast()\n\npublic inline val CSSBoxType.Companion.PADDING: CSSBoxType get() = \"padding\".asDynamic().unsafeCast()\n\npublic inline val CSSBoxType.Companion.CONTENT: CSSBoxType get() = \"content\".asDynamic().unsafeCast()","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.fetch\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.files.*\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)\n fun delete(name: String)\n fun get(name: String): String?\n fun has(name: String): Boolean\n fun set(name: String, value: String)\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ResponseInit(status: Short? = 200, statusText: String? = \"OK\", headers: dynamic = undefined): ResponseInit {\n val o = js(\"({})\")\n o[\"status\"] = status\n o[\"statusText\"] = statusText\n o[\"headers\"] = headers\n return o\n}\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface RequestType {\n companion object\n}\n\npublic inline val RequestType.Companion.EMPTY: RequestType get() = \"\".asDynamic().unsafeCast()\n\npublic inline val RequestType.Companion.AUDIO: RequestType get() = \"audio\".asDynamic().unsafeCast()\n\npublic inline val RequestType.Companion.FONT: RequestType get() = \"font\".asDynamic().unsafeCast()\n\npublic inline val RequestType.Companion.IMAGE: RequestType get() = \"image\".asDynamic().unsafeCast()\n\npublic inline val RequestType.Companion.SCRIPT: RequestType get() = \"script\".asDynamic().unsafeCast()\n\npublic inline val RequestType.Companion.STYLE: RequestType get() = \"style\".asDynamic().unsafeCast()\n\npublic inline val RequestType.Companion.TRACK: RequestType get() = \"track\".asDynamic().unsafeCast()\n\npublic inline val RequestType.Companion.VIDEO: RequestType get() = \"video\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface RequestDestination {\n companion object\n}\n\npublic inline val RequestDestination.Companion.EMPTY: RequestDestination get() = \"\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.DOCUMENT: RequestDestination get() = \"document\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.EMBED: RequestDestination get() = \"embed\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.FONT: RequestDestination get() = \"font\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.IMAGE: RequestDestination get() = \"image\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.MANIFEST: RequestDestination get() = \"manifest\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.MEDIA: RequestDestination get() = \"media\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.OBJECT: RequestDestination get() = \"object\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.REPORT: RequestDestination get() = \"report\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.SCRIPT: RequestDestination get() = \"script\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.SERVICEWORKER: RequestDestination get() = \"serviceworker\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.SHAREDWORKER: RequestDestination get() = \"sharedworker\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.STYLE: RequestDestination get() = \"style\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.WORKER: RequestDestination get() = \"worker\".asDynamic().unsafeCast()\n\npublic inline val RequestDestination.Companion.XSLT: RequestDestination get() = \"xslt\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface RequestMode {\n companion object\n}\n\npublic inline val RequestMode.Companion.NAVIGATE: RequestMode get() = \"navigate\".asDynamic().unsafeCast()\n\npublic inline val RequestMode.Companion.SAME_ORIGIN: RequestMode get() = \"same-origin\".asDynamic().unsafeCast()\n\npublic inline val RequestMode.Companion.NO_CORS: RequestMode get() = \"no-cors\".asDynamic().unsafeCast()\n\npublic inline val RequestMode.Companion.CORS: RequestMode get() = \"cors\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface RequestCredentials {\n companion object\n}\n\npublic inline val RequestCredentials.Companion.OMIT: RequestCredentials get() = \"omit\".asDynamic().unsafeCast()\n\npublic inline val RequestCredentials.Companion.SAME_ORIGIN: RequestCredentials get() = \"same-origin\".asDynamic().unsafeCast()\n\npublic inline val RequestCredentials.Companion.INCLUDE: RequestCredentials get() = \"include\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface RequestCache {\n companion object\n}\n\npublic inline val RequestCache.Companion.DEFAULT: RequestCache get() = \"default\".asDynamic().unsafeCast()\n\npublic inline val RequestCache.Companion.NO_STORE: RequestCache get() = \"no-store\".asDynamic().unsafeCast()\n\npublic inline val RequestCache.Companion.RELOAD: RequestCache get() = \"reload\".asDynamic().unsafeCast()\n\npublic inline val RequestCache.Companion.NO_CACHE: RequestCache get() = \"no-cache\".asDynamic().unsafeCast()\n\npublic inline val RequestCache.Companion.FORCE_CACHE: RequestCache get() = \"force-cache\".asDynamic().unsafeCast()\n\npublic inline val RequestCache.Companion.ONLY_IF_CACHED: RequestCache get() = \"only-if-cached\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface RequestRedirect {\n companion object\n}\n\npublic inline val RequestRedirect.Companion.FOLLOW: RequestRedirect get() = \"follow\".asDynamic().unsafeCast()\n\npublic inline val RequestRedirect.Companion.ERROR: RequestRedirect get() = \"error\".asDynamic().unsafeCast()\n\npublic inline val RequestRedirect.Companion.MANUAL: RequestRedirect get() = \"manual\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ResponseType {\n companion object\n}\n\npublic inline val ResponseType.Companion.BASIC: ResponseType get() = \"basic\".asDynamic().unsafeCast()\n\npublic inline val ResponseType.Companion.CORS: ResponseType get() = \"cors\".asDynamic().unsafeCast()\n\npublic inline val ResponseType.Companion.DEFAULT: ResponseType get() = \"default\".asDynamic().unsafeCast()\n\npublic inline val ResponseType.Companion.ERROR: ResponseType get() = \"error\".asDynamic().unsafeCast()\n\npublic inline val ResponseType.Companion.OPAQUE: ResponseType get() = \"opaque\".asDynamic().unsafeCast()\n\npublic inline val ResponseType.Companion.OPAQUEREDIRECT: ResponseType get() = \"opaqueredirect\".asDynamic().unsafeCast()","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom.mediacapture\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\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, MediaProvider {\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)\n fun removeTrack(track: MediaStreamTrack)\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()\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface MediaStreamTrackEventInit : EventInit {\n var track: MediaStreamTrack?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"track\"] = track\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n return o\n}\n\npublic external open class OverconstrainedErrorEvent(type: String, eventInitDict: OverconstrainedErrorEventInit) : Event {\n open val error: dynamic\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\npublic external interface OverconstrainedErrorEventInit : EventInit {\n var error: dynamic /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"error\"] = error\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun MediaStreamConstraints(video: dynamic = false, audio: dynamic = false): MediaStreamConstraints {\n val o = js(\"({})\")\n o[\"video\"] = video\n o[\"audio\"] = audio\n return o\n}\n\npublic external interface ConstrainablePattern {\n var onoverconstrained: ((Event) -> dynamic)?\n get() = definedExternally\n set(value) = definedExternally\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleRange(max: Double? = undefined, min: Double? = undefined): DoubleRange {\n val o = js(\"({})\")\n o[\"max\"] = max\n o[\"min\"] = min\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"exact\"] = exact\n o[\"ideal\"] = ideal\n o[\"max\"] = max\n o[\"min\"] = min\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ULongRange(max: Int? = undefined, min: Int? = undefined): ULongRange {\n val o = js(\"({})\")\n o[\"max\"] = max\n o[\"min\"] = min\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"exact\"] = exact\n o[\"ideal\"] = ideal\n o[\"max\"] = max\n o[\"min\"] = min\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ConstrainBooleanParameters(exact: Boolean? = undefined, ideal: Boolean? = undefined): ConstrainBooleanParameters {\n val o = js(\"({})\")\n o[\"exact\"] = exact\n o[\"ideal\"] = ideal\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ConstrainDOMStringParameters(exact: dynamic = undefined, ideal: dynamic = undefined): ConstrainDOMStringParameters {\n val o = js(\"({})\")\n o[\"exact\"] = exact\n o[\"ideal\"] = ideal\n return o\n}\n\npublic external interface Capabilities\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun Capabilities(): Capabilities {\n val o = js(\"({})\")\n return o\n}\n\npublic external interface Settings\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun Settings(): Settings {\n val o = js(\"({})\")\n return o\n}\n\npublic external interface ConstraintSet\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ConstraintSet(): ConstraintSet {\n val o = js(\"({})\")\n return o\n}\n\npublic external interface Constraints : ConstraintSet {\n var advanced: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun Constraints(advanced: Array? = undefined): Constraints {\n val o = js(\"({})\")\n o[\"advanced\"] = advanced\n return o\n}\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface MediaStreamTrackState {\n companion object\n}\n\npublic inline val MediaStreamTrackState.Companion.LIVE: MediaStreamTrackState get() = \"live\".asDynamic().unsafeCast()\n\npublic inline val MediaStreamTrackState.Companion.ENDED: MediaStreamTrackState get() = \"ended\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface VideoFacingModeEnum {\n companion object\n}\n\npublic inline val VideoFacingModeEnum.Companion.USER: VideoFacingModeEnum get() = \"user\".asDynamic().unsafeCast()\n\npublic inline val VideoFacingModeEnum.Companion.ENVIRONMENT: VideoFacingModeEnum get() = \"environment\".asDynamic().unsafeCast()\n\npublic inline val VideoFacingModeEnum.Companion.LEFT: VideoFacingModeEnum get() = \"left\".asDynamic().unsafeCast()\n\npublic inline val VideoFacingModeEnum.Companion.RIGHT: VideoFacingModeEnum get() = \"right\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface VideoResizeModeEnum {\n companion object\n}\n\npublic inline val VideoResizeModeEnum.Companion.NONE: VideoResizeModeEnum get() = \"none\".asDynamic().unsafeCast()\n\npublic inline val VideoResizeModeEnum.Companion.CROP_AND_SCALE: VideoResizeModeEnum get() = \"crop-and-scale\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface MediaDeviceKind {\n companion object\n}\n\npublic inline val MediaDeviceKind.Companion.AUDIOINPUT: MediaDeviceKind get() = \"audioinput\".asDynamic().unsafeCast()\n\npublic inline val MediaDeviceKind.Companion.AUDIOOUTPUT: MediaDeviceKind get() = \"audiooutput\".asDynamic().unsafeCast()\n\npublic inline val MediaDeviceKind.Companion.VIDEOINPUT: MediaDeviceKind get() = \"videoinput\".asDynamic().unsafeCast()","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom.mediasource\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\n\n/**\n * Exposes the JavaScript [MediaSource](https://developer.mozilla.org/en/docs/Web/API/MediaSource) to Kotlin\n */\npublic external open class MediaSource : EventTarget, MediaProvider {\n open val sourceBuffers: SourceBufferList\n open val activeSourceBuffers: SourceBufferList\n open val readyState: ReadyState\n var duration: Double\n var onsourceopen: ((Event) -> dynamic)?\n var onsourceended: ((Event) -> dynamic)?\n var onsourceclose: ((Event) -> dynamic)?\n fun addSourceBuffer(type: String): SourceBuffer\n fun removeSourceBuffer(sourceBuffer: SourceBuffer)\n fun endOfStream(error: EndOfStreamError = definedExternally)\n fun setLiveSeekableRange(start: Double, end: Double)\n fun clearLiveSeekableRange()\n\n companion object {\n fun isTypeSupported(type: String): Boolean\n }\n}\n\n/**\n * Exposes the JavaScript [SourceBuffer](https://developer.mozilla.org/en/docs/Web/API/SourceBuffer) to Kotlin\n */\npublic external abstract class SourceBuffer : EventTarget {\n open var mode: AppendMode\n open val updating: Boolean\n open val buffered: TimeRanges\n open var timestampOffset: Double\n open val audioTracks: AudioTrackList\n open val videoTracks: VideoTrackList\n open val textTracks: TextTrackList\n open var appendWindowStart: Double\n open var appendWindowEnd: Double\n open var onupdatestart: ((Event) -> dynamic)?\n open var onupdate: ((Event) -> dynamic)?\n open var onupdateend: ((Event) -> dynamic)?\n open var onerror: ((Event) -> dynamic)?\n open var onabort: ((Event) -> dynamic)?\n fun appendBuffer(data: dynamic)\n fun abort()\n fun remove(start: Double, end: Double)\n}\n\n/**\n * Exposes the JavaScript [SourceBufferList](https://developer.mozilla.org/en/docs/Web/API/SourceBufferList) to Kotlin\n */\npublic external abstract class SourceBufferList : EventTarget {\n open val length: Int\n open var onaddsourcebuffer: ((Event) -> dynamic)?\n open var onremovesourcebuffer: ((Event) -> dynamic)?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SourceBufferList.get(index: Int): SourceBuffer? = asDynamic()[index]\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ReadyState {\n companion object\n}\n\npublic inline val ReadyState.Companion.CLOSED: ReadyState get() = \"closed\".asDynamic().unsafeCast()\n\npublic inline val ReadyState.Companion.OPEN: ReadyState get() = \"open\".asDynamic().unsafeCast()\n\npublic inline val ReadyState.Companion.ENDED: ReadyState get() = \"ended\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface EndOfStreamError {\n companion object\n}\n\npublic inline val EndOfStreamError.Companion.NETWORK: EndOfStreamError get() = \"network\".asDynamic().unsafeCast()\n\npublic inline val EndOfStreamError.Companion.DECODE: EndOfStreamError get() = \"decode\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface AppendMode {\n companion object\n}\n\npublic inline val AppendMode.Companion.SEGMENTS: AppendMode get() = \"segments\".asDynamic().unsafeCast()\n\npublic inline val AppendMode.Companion.SEQUENCE: AppendMode get() = \"sequence\".asDynamic().unsafeCast()","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom.pointerevents\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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, region: String? = 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 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[\"region\"] = region\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 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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.dom.svg\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.css.*\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()\n fun blur()\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 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"fill\"] = fill\n o[\"stroke\"] = stroke\n o[\"markers\"] = markers\n o[\"clipped\"] = clipped\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 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\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 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\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)\n fun convertToSpecifiedUnits(unitType: Short)\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)\n fun convertToSpecifiedUnits(unitType: Short)\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()\n fun initialize(newItem: dynamic): 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 fun getItem(index: Int): dynamic\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGNameList.get(index: Int): dynamic = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGNameList.set(index: Int, newItem: dynamic) { 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()\n fun initialize(newItem: SVGNumber): 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 fun getItem(index: Int): SVGNumber\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGNumberList.get(index: Int): SVGNumber? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGNumberList.set(index: Int, newItem: SVGNumber) { 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()\n fun initialize(newItem: SVGLength): 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 fun getItem(index: Int): SVGLength\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGLengthList.get(index: Int): SVGLength? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGLengthList.set(index: Int, newItem: SVGLength) { 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()\n fun initialize(newItem: String): 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 fun getItem(index: Int): String\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGStringList.get(index: Int): String? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGStringList.set(index: Int, newItem: String) { asDynamic()[index] = newItem }\n\n/**\n * Exposes the JavaScript [SVGUnitTypes](https://developer.mozilla.org/en/docs/Web/API/SVGUnitTypes) to Kotlin\n */\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface SVGUnitTypes {\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 */\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\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()\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)\n fun unsuspendRedrawAll()\n fun forceRedraw()\n\n companion object {\n val SVG_ZOOMANDPAN_UNKNOWN: Short\n val SVG_ZOOMANDPAN_DISABLE: Short\n val SVG_ZOOMANDPAN_MAGNIFY: Short\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\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 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 abstract class SVGUnknownElement : SVGGraphicsElement {\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\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 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\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 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\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 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\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 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\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 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\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 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 open class SVGUseElementShadowRoot : ShadowRoot {\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 SVGElementInstance {\n val correspondingElement: SVGElement?\n get() = definedExternally\n val correspondingUseElement: SVGUseElement?\n get() = definedExternally\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 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 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 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\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)\n fun setTranslate(tx: Float, ty: Float)\n fun setScale(sx: Float, sy: Float)\n fun setRotate(angle: Float, cx: Float, cy: Float)\n fun setSkewX(angle: Float)\n fun setSkewY(angle: Float)\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()\n fun initialize(newItem: SVGTransform): 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 fun getItem(index: Int): SVGTransform\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGTransformList.get(index: Int): SVGTransform? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGTransformList.set(index: Int, newItem: SVGTransform) { 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 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\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 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\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 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\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 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\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 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\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 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\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()\n fun initialize(newItem: DOMPoint): 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 fun getItem(index: Int): DOMPoint\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGPointList.get(index: Int): DOMPoint? = asDynamic()[index]\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline operator fun SVGPointList.set(index: Int, newItem: DOMPoint) { 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 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\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 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\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)\n\n companion object {\n val LENGTHADJUST_UNKNOWN: Short\n val LENGTHADJUST_SPACING: Short\n val LENGTHADJUST_SPACINGANDGLYPHS: Short\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\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 companion object {\n val LENGTHADJUST_UNKNOWN: Short\n val LENGTHADJUST_SPACING: Short\n val LENGTHADJUST_SPACINGANDGLYPHS: Short\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\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 companion object {\n val LENGTHADJUST_UNKNOWN: Short\n val LENGTHADJUST_SPACING: Short\n val LENGTHADJUST_SPACINGANDGLYPHS: Short\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\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 companion object {\n val LENGTHADJUST_UNKNOWN: Short\n val LENGTHADJUST_SPACING: Short\n val LENGTHADJUST_SPACINGANDGLYPHS: Short\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\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 val LENGTHADJUST_UNKNOWN: Short\n val LENGTHADJUST_SPACING: Short\n val LENGTHADJUST_SPACINGANDGLYPHS: Short\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\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 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\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 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 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()\n fun setOrientToAngle(angle: SVGAngle)\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 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\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 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\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 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\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 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 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\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 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 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 abstract class SVGMeshGradientElement : SVGGradientElement {\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 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 abstract class SVGMeshrowElement : SVGElement {\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 abstract class SVGMeshpatchElement : SVGElement {\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\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 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\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 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 abstract class SVGHatchElement : SVGElement {\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 abstract class SVGHatchpathElement : SVGElement {\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\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 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\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 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\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 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\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 companion object {\n val SVG_ZOOMANDPAN_UNKNOWN: Short\n val SVG_ZOOMANDPAN_DISABLE: Short\n val SVG_ZOOMANDPAN_MAGNIFY: Short\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 * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.files\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\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) : MediaProvider, ImageBitmapSource {\n open val size: Number\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()\n}\n\npublic external interface BlobPropertyBag {\n var type: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun BlobPropertyBag(type: String? = \"\"): BlobPropertyBag {\n val o = js(\"({})\")\n o[\"type\"] = type\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun FilePropertyBag(lastModified: Int? = undefined, type: String? = \"\"): FilePropertyBag {\n val o = js(\"({})\")\n o[\"lastModified\"] = lastModified\n o[\"type\"] = type\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 fun item(index: Int): File?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic 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)\n fun readAsBinaryString(blob: Blob)\n fun readAsText(blob: Blob, label: String = definedExternally)\n fun readAsDataURL(blob: Blob)\n fun abort()\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 * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.notifications\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.events.*\nimport org.w3c.workers.*\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()\n\n companion object {\n val permission: NotificationPermission\n val 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 return o\n}\n\npublic external interface NotificationAction {\n var action: String?\n var title: String?\n var icon: String?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun NotificationAction(action: String?, title: String?, icon: String? = undefined): NotificationAction {\n val o = js(\"({})\")\n o[\"action\"] = action\n o[\"title\"] = title\n o[\"icon\"] = icon\n return o\n}\n\npublic external interface GetNotificationOptions {\n var tag: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun GetNotificationOptions(tag: String? = \"\"): GetNotificationOptions {\n val o = js(\"({})\")\n o[\"tag\"] = tag\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface NotificationEventInit : ExtendableEventInit {\n var notification: Notification?\n var action: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"notification\"] = notification\n o[\"action\"] = action\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n return o\n}\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface NotificationPermission {\n companion object\n}\n\npublic inline val NotificationPermission.Companion.DEFAULT: NotificationPermission get() = \"default\".asDynamic().unsafeCast()\n\npublic inline val NotificationPermission.Companion.DENIED: NotificationPermission get() = \"denied\".asDynamic().unsafeCast()\n\npublic inline val NotificationPermission.Companion.GRANTED: NotificationPermission get() = \"granted\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface NotificationDirection {\n companion object\n}\n\npublic inline val NotificationDirection.Companion.AUTO: NotificationDirection get() = \"auto\".asDynamic().unsafeCast()\n\npublic inline val NotificationDirection.Companion.LTR: NotificationDirection get() = \"ltr\".asDynamic().unsafeCast()\n\npublic inline val NotificationDirection.Companion.RTL: NotificationDirection get() = \"rtl\".asDynamic().unsafeCast()","/*\n * Copyright 2010-2022 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 github.com/kotlin/dukat for details\n\npackage org.w3c.workers\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\nimport org.w3c.fetch.*\nimport org.w3c.notifications.*\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)\n}\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 showNotification(title: String, options: NotificationOptions = definedExternally): Promise\n fun getNotifications(filter: GetNotificationOptions = definedExternally): Promise>\n fun methodName(): Promise\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()\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun RegistrationOptions(scope: String? = undefined, type: WorkerType? = WorkerType.CLASSIC): RegistrationOptions {\n val o = js(\"({})\")\n o[\"scope\"] = scope\n o[\"type\"] = type\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 return o\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 onnotificationclick: ((NotificationEvent) -> dynamic)?\n open var onnotificationclose: ((NotificationEvent) -> dynamic)?\n open var onfunctionalevent: ((Event) -> dynamic)?\n fun skipWaiting(): Promise\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)\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ClientQueryOptions(includeUncontrolled: Boolean? = false, type: ClientType? = ClientType.WINDOW): ClientQueryOptions {\n val o = js(\"({})\")\n o[\"includeUncontrolled\"] = includeUncontrolled\n o[\"type\"] = type\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)\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\npublic external interface ExtendableEventInit : EventInit\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ExtendableEventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableEventInit {\n val o = js(\"({})\")\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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)\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\npublic external interface ForeignFetchOptions {\n var scopes: Array?\n var origins: Array?\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ForeignFetchOptions(scopes: Array?, origins: Array?): ForeignFetchOptions {\n val o = js(\"({})\")\n o[\"scopes\"] = scopes\n o[\"origins\"] = origins\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)\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\npublic external interface FetchEventInit : ExtendableEventInit {\n var request: Request?\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"request\"] = request\n o[\"clientId\"] = clientId\n o[\"isReload\"] = isReload\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\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)\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\npublic external interface ForeignFetchEventInit : ExtendableEventInit {\n var request: Request?\n var origin: String? /* = \"null\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"request\"] = request\n o[\"origin\"] = origin\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n return o\n}\n\npublic external interface ForeignFetchResponse {\n var response: Response?\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ForeignFetchResponse(response: Response?, origin: String? = undefined, headers: Array? = undefined): ForeignFetchResponse {\n val o = js(\"({})\")\n o[\"response\"] = response\n o[\"origin\"] = origin\n o[\"headers\"] = headers\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 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 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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"ignoreSearch\"] = ignoreSearch\n o[\"ignoreMethod\"] = ignoreMethod\n o[\"ignoreVary\"] = ignoreVary\n o[\"cacheName\"] = cacheName\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@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\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 o[\"type\"] = type\n o[\"request\"] = request\n o[\"response\"] = response\n o[\"options\"] = options\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 companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\npublic external interface UnionMessagePortOrServiceWorker\n\npublic external interface UnionClientOrMessagePortOrServiceWorker\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ServiceWorkerState {\n companion object\n}\n\npublic inline val ServiceWorkerState.Companion.INSTALLING: ServiceWorkerState get() = \"installing\".asDynamic().unsafeCast()\n\npublic inline val ServiceWorkerState.Companion.INSTALLED: ServiceWorkerState get() = \"installed\".asDynamic().unsafeCast()\n\npublic inline val ServiceWorkerState.Companion.ACTIVATING: ServiceWorkerState get() = \"activating\".asDynamic().unsafeCast()\n\npublic inline val ServiceWorkerState.Companion.ACTIVATED: ServiceWorkerState get() = \"activated\".asDynamic().unsafeCast()\n\npublic inline val ServiceWorkerState.Companion.REDUNDANT: ServiceWorkerState get() = \"redundant\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface FrameType {\n companion object\n}\n\npublic inline val FrameType.Companion.AUXILIARY: FrameType get() = \"auxiliary\".asDynamic().unsafeCast()\n\npublic inline val FrameType.Companion.TOP_LEVEL: FrameType get() = \"top-level\".asDynamic().unsafeCast()\n\npublic inline val FrameType.Companion.NESTED: FrameType get() = \"nested\".asDynamic().unsafeCast()\n\npublic inline val FrameType.Companion.NONE: FrameType get() = \"none\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface ClientType {\n companion object\n}\n\npublic inline val ClientType.Companion.WINDOW: ClientType get() = \"window\".asDynamic().unsafeCast()\n\npublic inline val ClientType.Companion.WORKER: ClientType get() = \"worker\".asDynamic().unsafeCast()\n\npublic inline val ClientType.Companion.SHAREDWORKER: ClientType get() = \"sharedworker\".asDynamic().unsafeCast()\n\npublic inline val ClientType.Companion.ALL: ClientType get() = \"all\".asDynamic().unsafeCast()","/*\n * Copyright 2010-2021 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 github.com/kotlin/dukat for details\n\npackage org.w3c.xhr\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.dom.*\nimport org.w3c.dom.events.*\nimport org.w3c.files.*\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 * 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)\n fun open(method: String, url: String, async: Boolean, username: String? = definedExternally, password: String? = definedExternally)\n fun setRequestHeader(name: String, value: String)\n fun send(body: dynamic = definedExternally)\n fun abort()\n fun getResponseHeader(name: String): String?\n fun getAllResponseHeaders(): String\n fun overrideMimeType(mime: String)\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)\n fun append(name: String, value: Blob, filename: String = definedExternally)\n fun delete(name: String)\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)\n fun set(name: String, value: Blob, filename: String = definedExternally)\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: Number\n open val total: Number\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\npublic external interface ProgressEventInit : EventInit {\n var lengthComputable: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var loaded: Number? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var total: Number? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\n@kotlin.internal.InlineOnly\npublic inline fun ProgressEventInit(lengthComputable: Boolean? = false, loaded: Number? = 0, total: Number? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ProgressEventInit {\n val o = js(\"({})\")\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 return o\n}\n\n/* please, don't implement this interface! */\n@JsName(\"null\")\n@Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npublic external interface XMLHttpRequestResponseType {\n companion object\n}\n\npublic inline val XMLHttpRequestResponseType.Companion.EMPTY: XMLHttpRequestResponseType get() = \"\".asDynamic().unsafeCast()\n\npublic inline val XMLHttpRequestResponseType.Companion.ARRAYBUFFER: XMLHttpRequestResponseType get() = \"arraybuffer\".asDynamic().unsafeCast()\n\npublic inline val XMLHttpRequestResponseType.Companion.BLOB: XMLHttpRequestResponseType get() = \"blob\".asDynamic().unsafeCast()\n\npublic inline val XMLHttpRequestResponseType.Companion.DOCUMENT: XMLHttpRequestResponseType get() = \"document\".asDynamic().unsafeCast()\n\npublic inline val XMLHttpRequestResponseType.Companion.JSON: XMLHttpRequestResponseType get() = \"json\".asDynamic().unsafeCast()\n\npublic inline val XMLHttpRequestResponseType.Companion.TEXT: XMLHttpRequestResponseType get() = \"text\".asDynamic().unsafeCast()","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 [OptIn] annotation, e.g. `@OptIn(ExperimentalStdlibApi::class)`,\n * or by using the compiler argument `-opt-in=kotlin.ExperimentalStdlibApi`.\n */\n@RequiresOptIn(level = RequiresOptIn.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@SinceKotlin(\"1.3\")\npublic annotation class ExperimentalStdlibApi\n","/*\n * Copyright 2010-2020 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\n/**\n * Enables overload selection based on the type of the value returned from lambda argument.\n *\n * When two or more function overloads have otherwise the same parameter lists that differ only in the return type\n * of a functional parameter, this annotation enables overload selection by the type of the value returned from\n * the lambda function passed to this functional parameter.\n *\n * Example:\n * ```\n * @OverloadResolutionByLambdaReturnType\n * fun create(intProducer: () -> Int): Int\n *\n * fun create(doubleProducer: () -> Double): Double\n *\n * val newValue = create { 3.14 }\n * ```\n *\n * The annotation being applied to one of overloads allows to resolve this ambiguity by analyzing what value is returned\n * from the lambda function.\n *\n * This annotation is also used to discriminate the annotated overloads in case if overload selection still cannot\n * choose one of them even taking in account the result of lambda parameter analysis. In that case a warning is reported.\n *\n * Note: this annotation is experimental, see [ExperimentalTypeInference] on how to opt-in for it.\n */\n@Target(FUNCTION)\n@Retention(AnnotationRetention.BINARY)\n@SinceKotlin(\"1.4\")\n@ExperimentalTypeInference\npublic annotation class OverloadResolutionByLambdaReturnType","/*\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 [OptIn] annotation, e.g. `@OptIn(ExperimentalMultiplatform::class)`,\n * or by using the compiler argument `-opt-in=kotlin.ExperimentalMultiplatform`.\n */\n@RequiresOptIn\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)\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\npublic annotation class OptionalExpectation\n","/*\n * Copyright 2010-2022 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.*\nimport kotlin.annotation.AnnotationTarget.*\nimport kotlin.reflect.KClass\n\n/**\n * Signals that the annotated annotation class is a marker of an API that requires an explicit opt-in.\n *\n * Call sites of any declaration that is either annotated with such a marker or mentions in its signature any\n * other declaration that requires opt-in should opt in to the API either by using [OptIn],\n * or by being annotated with that marker themselves, effectively causing further propagation of the opt-in requirement.\n *\n * The intended uses of opt-in markers include, but are not limited to the following:\n * - Experimental API for public preview that might change its semantics or affect binary compatibility.\n * - Internal declarations that should not be used outside the declaring library, but are `public` for technical reasons.\n * - Fragile or delicate API that needs a lot of expertise to use and thus require an explicit opt-in.\n *\n * ## Contagiousness\n *\n * When a declaration is marked with an opt-in requirement, it is considered to be contagious, meaning that all its uses\n * or mentions in other declarations will require an explicit opt-in.\n * A rule of thumb for propagating is the following: if the marked declaration ceases to exist, only\n * the places with explicit opt-in (or the corresponding warning) will break. This rule does not imply transitivity,\n * e.g. the propagation does not propagate opt-in through inlining, making it the responsibility `inline` function author\n * to mark it properly.\n *\n * ### Type scopes\n *\n * A type is considered requiring opt-in if it is marked with an opt-in marker, or the outer declaration (class or interface) requires opt-in.\n * Any use of any declaration that mentions such type in its signature will require an explicit opt-in, even if it is not used\n * directly on the call site, and even if such declarations do not require opt-in directly.\n *\n * For example, consider the following declarations that are marked with non-propagating opt-in:\n * ```\n * @UnstableApi\n * class Unstable\n *\n * @OptIn(UnstableApi::class)\n * fun foo(): Unstable = Unstable()\n *\n * @OptIn(UnstableApi::class)\n * fun bar(arg: Unstable = Unstable()) {}\n *\n * @OptIn(UnstableApi::class)\n * fun Unstable?.baz() {}\n * ```\n * and their respective call sites:\n * ```\n * fun outerFun() {\n * val s = foo()\n * bar()\n * null.baz()\n * }\n * ```\n * Even though call sites do not mention `Unstable` type directly, the corresponding opt-in warning or error will be triggered\n * in each call site due to propagation contagiousness. Note that the propagation is not transitive, i.e. calls to `outerFun`\n * itself would not trigger any further opt-in requirements.\n *\n * ### Lexical scopes\n *\n * If a type requires an opt-in, such requirement is propagated to its lexical scope and all its nested declarations.\n * For example, for the following scope:\n * ```\n * @UnstableApi\n * class Unstable {\n * fun memberFun() = ...\n *\n * class NestedClass {\n * fun nestedFun() = ...\n * }\n * }\n * ```\n *\n * Any use of `Unstable`, `NestedClass`, or their member functions will require an explicit opt-in.\n *\n * ### Overridden declarations\n *\n * Opt-in markers are also propagated through the inheritance and interface implementation.\n * If the base declaration requires an opt-in, overriding it requires either an explicit opt-in or\n * propagating the opt-in requirement.\n *\n * See also [Kotlin language documentation](https://kotlinlang.org/docs/opt-in-requirements.html) for more information.\n *\n * @property message message to be reported on usages of API without an explicit opt-in, or empty string for the default message.\n * The default message is: \"This declaration is experimental and its usage should be marked with 'Marker'\n * or '@OptIn(Marker::class)'\", where `Marker` is the opt-in requirement marker.\n * @property level specifies how usages of API without an explicit opt-in are reported in code.\n */\n@Target(ANNOTATION_CLASS)\n@Retention(BINARY)\n@SinceKotlin(\"1.3\")\npublic annotation class RequiresOptIn(\n val message: String = \"\",\n val level: Level = Level.ERROR\n) {\n /**\n * Severity of the diagnostic that should be reported on usages which did not explicitly opted into\n * the API either by using [OptIn] 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 API. */\n WARNING,\n\n /** Specifies that a compilation error should be reported on incorrect usages of this API. */\n ERROR,\n }\n}\n\n/**\n * Allows to use the API denoted by the given markers in the annotated file, declaration, or expression.\n * If a declaration is annotated with [OptIn], its usages are **not** required to opt in to that API.\n *\n * [markerClass] specifies marker annotations that require explicit opt-in. The marker annotation is\n * not required to be itself marked with [RequiresOptIn] to enable gradual migration of API from requiring opt-in to the regular one,\n * yet declaring such `OptIn` yields a compilation warning.\n *\n * See also [Kotlin language documentation](https://kotlinlang.org/docs/opt-in-requirements.html) for more information.\n *\n * @property markerClass specifies marker annotations that require explicit opt-in.\n * @see RequiresOptIn for a detailed description of opt-in semantics and propagation rules.\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.3\")\npublic annotation class OptIn(\n vararg val markerClass: KClass\n)\n\n/**\n * This annotation marks the experimental preview of the language feature [SubclassOptInRequired].\n *\n * > Note that this API is in a preview state and has a chance of being changed in the future.\n * Do not use it if you develop a library since your library can become source incompatible\n * with the future versions of Kotlin.\n */\n@Target(CLASS)\n@Retention(BINARY)\n@SinceKotlin(\"1.8\")\npublic annotation class ExperimentalSubclassOptIn\n\n/**\n * Annotation that marks open for subclassing classes and interfaces, and makes implementation\n * and extension of such declarations as requiring an explicit opt-in.\n *\n * When applied, any attempt to subclass the target declaration will trigger an opt-in\n * with the corresponding level and message.\n *\n * The intended uses of subclass opt-in markers include, but are not limited to the following API:\n * - Stable to use, but unstable to implement due to its further evolution.\n * - Stable to use, but closed for 3rd-part implementations due to internal or technical reasons.\n * - Stable to use, but delicate or fragile to implement.\n * - Stable to use, but with a contract that may be weakened in the future in a backwards-incompatible\n * manner for external implementations.\n *\n * Contrary to regular [RequiresOptIn], there are three ways to opt-in into the subclassing requirement:\n * - Annotate declaration with the marker annotation, making it propagating.\n * - Annotate declaration with [OptIn] in order to opt in into the provided guarantees in a non-propagating manner.\n * - Annotate declaration with [SubclassOptInRequired] with the same marker class, making it further propagating only for subclassing.\n *\n * Uses of this annotation are limited to open and abstract classes, and non-`fun` interfaces.\n * Any other uses allowed by `CLASS` annotation target yield a compilation error.\n *\n * @property markerClass specifies marker annotation that require explicit opt-in.\n * @see RequiresOptIn for a detailed description of opt-in semantics and propagation rules.\n */\n@Target(CLASS)\n@Retention(BINARY)\n@SinceKotlin(\"1.8\")\n@ExperimentalSubclassOptIn\npublic annotation class SubclassOptInRequired(\n val markerClass: KClass\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.AnnotationTarget.*\nimport kotlin.reflect.KClass\n\n\n@Target(CLASS, PROPERTY, CONSTRUCTOR, FUNCTION, TYPEALIAS)\n@Retention(BINARY)\ninternal annotation class WasExperimental(\n vararg val markerClass: KClass\n)\n","/*\n * Copyright 2010-2020 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\nimport kotlin.js.JsName\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 in 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 @JsName(\"toArray\")\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-2020 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 * 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 in 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-2020 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 * 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 in its key type.\n * @param V the type of map values. The map is covariant in 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.concurrent.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.concurrent.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-2020 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 in 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-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 * Resizable-array implementation of the deque data structure.\n *\n * The name deque is short for \"double ended queue\" and is usually pronounced \"deck\".\n *\n * The collection provide methods for convenient access to the both ends.\n * It also implements [MutableList] interface and supports efficient get/set operations by index.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic class ArrayDeque : AbstractMutableList {\n private var head: Int = 0\n private var elementData: Array\n\n override var size: Int = 0\n private set\n\n /**\n * Constructs an empty deque with specified [initialCapacity], or throws [IllegalArgumentException] if [initialCapacity] is negative.\n */\n public constructor(initialCapacity: Int) {\n elementData = when {\n initialCapacity == 0 -> emptyElementData\n initialCapacity > 0 -> arrayOfNulls(initialCapacity)\n else -> throw IllegalArgumentException(\"Illegal Capacity: $initialCapacity\")\n }\n }\n\n /**\n * Constructs an empty deque.\n */\n public constructor() {\n elementData = emptyElementData\n }\n\n /**\n * Constructs a deque that contains the same elements as the specified [elements] collection in the same order.\n */\n public constructor(elements: Collection) {\n elementData = elements.toTypedArray()\n size = elementData.size\n if (elementData.isEmpty()) elementData = emptyElementData\n }\n\n /**\n * Ensures that the capacity of this deque is at least equal to the specified [minCapacity].\n *\n * If the current capacity is less than the [minCapacity], a new backing storage is allocated with greater capacity.\n * Otherwise, this method takes no action and simply returns.\n */\n private fun ensureCapacity(minCapacity: Int) {\n if (minCapacity < 0) throw IllegalStateException(\"Deque is too big.\") // overflow\n if (minCapacity <= elementData.size) return\n if (elementData === emptyElementData) {\n elementData = arrayOfNulls(minCapacity.coerceAtLeast(defaultMinCapacity))\n return\n }\n\n val newCapacity = newCapacity(elementData.size, minCapacity)\n copyElements(newCapacity)\n }\n\n /**\n * Creates a new array with the specified [newCapacity] size and copies elements in the [elementData] array to it.\n */\n private fun copyElements(newCapacity: Int) {\n val newElements = arrayOfNulls(newCapacity)\n elementData.copyInto(newElements, 0, head, elementData.size)\n elementData.copyInto(newElements, elementData.size - head, 0, head)\n head = 0\n elementData = newElements\n }\n\n @kotlin.internal.InlineOnly\n private inline fun internalGet(internalIndex: Int): E {\n @Suppress(\"UNCHECKED_CAST\")\n return elementData[internalIndex] as E\n }\n\n private fun positiveMod(index: Int): Int = if (index >= elementData.size) index - elementData.size else index\n\n private fun negativeMod(index: Int): Int = if (index < 0) index + elementData.size else index\n\n @kotlin.internal.InlineOnly\n private inline fun internalIndex(index: Int): Int = positiveMod(head + index)\n\n private fun incremented(index: Int): Int = if (index == elementData.lastIndex) 0 else index + 1\n\n private fun decremented(index: Int): Int = if (index == 0) elementData.lastIndex else index - 1\n\n override fun isEmpty(): Boolean = size == 0\n\n /**\n * Returns the first element, or throws [NoSuchElementException] if this deque is empty.\n */\n public fun first(): E = if (isEmpty()) throw NoSuchElementException(\"ArrayDeque is empty.\") else internalGet(head)\n\n /**\n * Returns the first element, or `null` if this deque is empty.\n */\n public fun firstOrNull(): E? = if (isEmpty()) null else internalGet(head)\n\n /**\n * Returns the last element, or throws [NoSuchElementException] if this deque is empty.\n */\n public fun last(): E = if (isEmpty()) throw NoSuchElementException(\"ArrayDeque is empty.\") else internalGet(internalIndex(lastIndex))\n\n /**\n * Returns the last element, or `null` if this deque is empty.\n */\n public fun lastOrNull(): E? = if (isEmpty()) null else internalGet(internalIndex(lastIndex))\n\n /**\n * Prepends the specified [element] to this deque.\n */\n public fun addFirst(element: E) {\n ensureCapacity(size + 1)\n\n head = decremented(head)\n elementData[head] = element\n size += 1\n }\n\n /**\n * Appends the specified [element] to this deque.\n */\n public fun addLast(element: E) {\n ensureCapacity(size + 1)\n\n elementData[internalIndex(size)] = element\n size += 1\n }\n\n /**\n * Removes the first element from this deque and returns that removed element, or throws [NoSuchElementException] if this deque is empty.\n */\n public fun removeFirst(): E {\n if (isEmpty()) throw NoSuchElementException(\"ArrayDeque is empty.\")\n\n val element = internalGet(head)\n elementData[head] = null\n head = incremented(head)\n size -= 1\n return element\n }\n\n /**\n * Removes the first element from this deque and returns that removed element, or returns `null` if this deque is empty.\n */\n public fun removeFirstOrNull(): E? = if (isEmpty()) null else removeFirst()\n\n /**\n * Removes the last element from this deque and returns that removed element, or throws [NoSuchElementException] if this deque is empty.\n */\n public fun removeLast(): E {\n if (isEmpty()) throw NoSuchElementException(\"ArrayDeque is empty.\")\n\n val internalLastIndex = internalIndex(lastIndex)\n val element = internalGet(internalLastIndex)\n elementData[internalLastIndex] = null\n size -= 1\n return element\n }\n\n /**\n * Removes the last element from this deque and returns that removed element, or returns `null` if this deque is empty.\n */\n public fun removeLastOrNull(): E? = if (isEmpty()) null else removeLast()\n\n // MutableList, MutableCollection\n public override fun add(element: E): Boolean {\n addLast(element)\n return true\n }\n\n public override fun add(index: Int, element: E) {\n AbstractList.checkPositionIndex(index, size)\n\n if (index == size) {\n addLast(element)\n return\n } else if (index == 0) {\n addFirst(element)\n return\n }\n\n ensureCapacity(size + 1)\n\n // Elements in circular array lay in 2 ways:\n // 1. `head` is less than `tail`: [#, #, e1, e2, e3, #]\n // 2. `head` is greater than `tail`: [e3, #, #, #, e1, e2]\n // where head is the index of the first element in the circular array,\n // and tail is the index following the last element.\n //\n // At this point the insertion index is not equal to head or tail.\n // Also the circular array can store at least one more element.\n //\n // Depending on where the given element must be inserted the preceding or the succeeding\n // elements will be shifted to make room for the element to be inserted.\n //\n // In case the preceding elements are shifted:\n // * if the insertion index is greater than the head (regardless of circular array form)\n // -> shift the preceding elements\n // * otherwise, the circular array has (2) form and the insertion index is less than tail\n // -> shift all elements in the back of the array\n // -> shift preceding elements in the front of the array\n // In case the succeeding elements are shifted:\n // * if the insertion index is less than the tail (regardless of circular array form)\n // -> shift the succeeding elements\n // * otherwise, the circular array has (2) form and the insertion index is greater than head\n // -> shift all elements in the front of the array\n // -> shift succeeding elements in the back of the array\n\n val internalIndex = internalIndex(index)\n\n if (index < (size + 1) shr 1) {\n // closer to the first element -> shift preceding elements\n val decrementedInternalIndex = decremented(internalIndex)\n val decrementedHead = decremented(head)\n\n if (decrementedInternalIndex >= head) {\n elementData[decrementedHead] = elementData[head] // head can be zero\n elementData.copyInto(elementData, head, head + 1, decrementedInternalIndex + 1)\n } else { // head > tail\n elementData.copyInto(elementData, head - 1, head, elementData.size) // head can't be zero\n elementData[elementData.size - 1] = elementData[0]\n elementData.copyInto(elementData, 0, 1, decrementedInternalIndex + 1)\n }\n\n elementData[decrementedInternalIndex] = element\n head = decrementedHead\n } else {\n // closer to the last element -> shift succeeding elements\n val tail = internalIndex(size)\n\n if (internalIndex < tail) {\n elementData.copyInto(elementData, internalIndex + 1, internalIndex, tail)\n } else { // head > tail\n elementData.copyInto(elementData, 1, 0, tail)\n elementData[0] = elementData[elementData.size - 1]\n elementData.copyInto(elementData, internalIndex + 1, internalIndex, elementData.size - 1)\n }\n\n elementData[internalIndex] = element\n }\n size += 1\n }\n\n private fun copyCollectionElements(internalIndex: Int, elements: Collection) {\n val iterator = elements.iterator()\n\n for (index in internalIndex until elementData.size) {\n if (!iterator.hasNext()) break\n elementData[index] = iterator.next()\n }\n for (index in 0 until head) {\n if (!iterator.hasNext()) break\n elementData[index] = iterator.next()\n }\n\n size += elements.size\n }\n\n public override fun addAll(elements: Collection): Boolean {\n if (elements.isEmpty()) return false\n ensureCapacity(this.size + elements.size)\n copyCollectionElements(internalIndex(size), elements)\n return true\n }\n\n public override fun addAll(index: Int, elements: Collection): Boolean {\n AbstractList.checkPositionIndex(index, size)\n\n if (elements.isEmpty()) {\n return false\n } else if (index == size) {\n return addAll(elements)\n }\n\n ensureCapacity(this.size + elements.size)\n\n val tail = internalIndex(size)\n val internalIndex = internalIndex(index)\n val elementsSize = elements.size\n\n if (index < (size + 1) shr 1) {\n // closer to the first element -> shift preceding elements\n\n var shiftedHead = head - elementsSize\n\n if (internalIndex >= head) {\n if (shiftedHead >= 0) {\n elementData.copyInto(elementData, shiftedHead, head, internalIndex)\n } else { // head < tail, insertion leads to head >= tail\n shiftedHead += elementData.size\n val elementsToShift = internalIndex - head\n val shiftToBack = elementData.size - shiftedHead\n\n if (shiftToBack >= elementsToShift) {\n elementData.copyInto(elementData, shiftedHead, head, internalIndex)\n } else {\n elementData.copyInto(elementData, shiftedHead, head, head + shiftToBack)\n elementData.copyInto(elementData, 0, head + shiftToBack, internalIndex)\n }\n }\n } else { // head > tail, internalIndex < tail\n elementData.copyInto(elementData, shiftedHead, head, elementData.size)\n if (elementsSize >= internalIndex) {\n elementData.copyInto(elementData, elementData.size - elementsSize, 0, internalIndex)\n } else {\n elementData.copyInto(elementData, elementData.size - elementsSize, 0, elementsSize)\n elementData.copyInto(elementData, 0, elementsSize, internalIndex)\n }\n }\n head = shiftedHead\n copyCollectionElements(negativeMod(internalIndex - elementsSize), elements)\n } else {\n // closer to the last element -> shift succeeding elements\n\n val shiftedInternalIndex = internalIndex + elementsSize\n\n if (internalIndex < tail) {\n if (tail + elementsSize <= elementData.size) {\n elementData.copyInto(elementData, shiftedInternalIndex, internalIndex, tail)\n } else { // head < tail, insertion leads to head >= tail\n if (shiftedInternalIndex >= elementData.size) {\n elementData.copyInto(elementData, shiftedInternalIndex - elementData.size, internalIndex, tail)\n } else {\n val shiftToFront = tail + elementsSize - elementData.size\n elementData.copyInto(elementData, 0, tail - shiftToFront, tail)\n elementData.copyInto(elementData, shiftedInternalIndex, internalIndex, tail - shiftToFront)\n }\n }\n } else { // head > tail, internalIndex > head\n elementData.copyInto(elementData, elementsSize, 0, tail)\n if (shiftedInternalIndex >= elementData.size) {\n elementData.copyInto(elementData, shiftedInternalIndex - elementData.size, internalIndex, elementData.size)\n } else {\n elementData.copyInto(elementData, 0, elementData.size - elementsSize, elementData.size)\n elementData.copyInto(elementData, shiftedInternalIndex, internalIndex, elementData.size - elementsSize)\n }\n }\n copyCollectionElements(internalIndex, elements)\n }\n\n return true\n }\n\n public override fun get(index: Int): E {\n AbstractList.checkElementIndex(index, size)\n\n return internalGet(internalIndex(index))\n }\n\n public override fun set(index: Int, element: E): E {\n AbstractList.checkElementIndex(index, size)\n\n val internalIndex = internalIndex(index)\n val oldElement = internalGet(internalIndex)\n elementData[internalIndex] = element\n\n return oldElement\n }\n\n public override fun contains(element: E): Boolean = indexOf(element) != -1\n\n public override fun indexOf(element: E): Int {\n val tail = internalIndex(size)\n\n if (head < tail) {\n for (index in head until tail) {\n if (element == elementData[index]) return index - head\n }\n } else if (head >= tail) {\n for (index in head until elementData.size) {\n if (element == elementData[index]) return index - head\n }\n for (index in 0 until tail) {\n if (element == elementData[index]) return index + elementData.size - head\n }\n }\n\n return -1\n }\n\n public override fun lastIndexOf(element: E): Int {\n val tail = internalIndex(size)\n\n if (head < tail) {\n for (index in tail - 1 downTo head) {\n if (element == elementData[index]) return index - head\n }\n } else if (head > tail) {\n for (index in tail - 1 downTo 0) {\n if (element == elementData[index]) return index + elementData.size - head\n }\n for (index in elementData.lastIndex downTo head) {\n if (element == elementData[index]) return index - head\n }\n }\n\n return -1\n }\n\n public override fun remove(element: E): Boolean {\n val index = indexOf(element)\n if (index == -1) return false\n removeAt(index)\n return true\n }\n\n public override fun removeAt(index: Int): E {\n AbstractList.checkElementIndex(index, size)\n\n if (index == lastIndex) {\n return removeLast()\n } else if (index == 0) {\n return removeFirst()\n }\n\n val internalIndex = internalIndex(index)\n val element = internalGet(internalIndex)\n\n if (index < size shr 1) {\n // closer to the first element -> shift preceding elements\n if (internalIndex >= head) {\n elementData.copyInto(elementData, head + 1, head, internalIndex)\n } else { // head > tail, internalIndex < head\n elementData.copyInto(elementData, 1, 0, internalIndex)\n elementData[0] = elementData[elementData.size - 1]\n elementData.copyInto(elementData, head + 1, head, elementData.size - 1)\n }\n\n elementData[head] = null\n head = incremented(head)\n } else {\n // closer to the last element -> shift succeeding elements\n val internalLastIndex = internalIndex(lastIndex)\n\n if (internalIndex <= internalLastIndex) {\n elementData.copyInto(elementData, internalIndex, internalIndex + 1, internalLastIndex + 1)\n } else { // head > tail, internalIndex > head\n elementData.copyInto(elementData, internalIndex, internalIndex + 1, elementData.size)\n elementData[elementData.size - 1] = elementData[0]\n elementData.copyInto(elementData, 0, 1, internalLastIndex + 1)\n }\n\n elementData[internalLastIndex] = null\n }\n size -= 1\n\n return element\n }\n\n public override fun removeAll(elements: Collection): Boolean = filterInPlace { !elements.contains(it) }\n\n public override fun retainAll(elements: Collection): Boolean = filterInPlace { elements.contains(it) }\n\n private inline fun filterInPlace(predicate: (E) -> Boolean): Boolean {\n if (this.isEmpty() || elementData.isEmpty())\n return false\n\n val tail = internalIndex(size)\n var newTail = head\n var modified = false\n\n if (head < tail) {\n for (index in head until tail) {\n val element = elementData[index]\n\n @Suppress(\"UNCHECKED_CAST\")\n if (predicate(element as E))\n elementData[newTail++] = element\n else\n modified = true\n }\n\n elementData.fill(null, newTail, tail)\n\n } else {\n for (index in head until elementData.size) {\n val element = elementData[index]\n elementData[index] = null\n\n @Suppress(\"UNCHECKED_CAST\")\n if (predicate(element as E))\n elementData[newTail++] = element\n else\n modified = true\n }\n\n newTail = positiveMod(newTail)\n\n for (index in 0 until tail) {\n val element = elementData[index]\n elementData[index] = null\n\n @Suppress(\"UNCHECKED_CAST\")\n if (predicate(element as E)) {\n elementData[newTail] = element\n newTail = incremented(newTail)\n } else {\n modified = true\n }\n }\n }\n if (modified)\n size = negativeMod(newTail - head)\n\n return modified\n }\n\n public override fun clear() {\n val tail = internalIndex(size)\n if (head < tail) {\n elementData.fill(null, head, tail)\n } else if (isNotEmpty()) {\n elementData.fill(null, head, elementData.size)\n elementData.fill(null, 0, tail)\n }\n head = 0\n size = 0\n }\n\n @Suppress(\"NOTHING_TO_OVERRIDE\")\n override fun toArray(array: Array): Array {\n @Suppress(\"UNCHECKED_CAST\")\n val dest = (if (array.size >= size) array else arrayOfNulls(array, size)) as Array\n\n val tail = internalIndex(size)\n if (head < tail) {\n elementData.copyInto(dest, startIndex = head, endIndex = tail)\n } else if (isNotEmpty()) {\n elementData.copyInto(dest, destinationOffset = 0, startIndex = head, endIndex = elementData.size)\n elementData.copyInto(dest, destinationOffset = elementData.size - head, startIndex = 0, endIndex = tail)\n }\n if (dest.size > size) {\n dest[size] = null // null-terminate\n }\n\n @Suppress(\"UNCHECKED_CAST\")\n return dest as Array\n }\n\n @Suppress(\"NOTHING_TO_OVERRIDE\")\n override fun toArray(): Array {\n return toArray(arrayOfNulls(size))\n }\n\n // for testing\n internal fun testToArray(array: Array): Array = toArray(array)\n internal fun testToArray(): Array = toArray()\n\n internal companion object {\n private val emptyElementData = emptyArray()\n private const val maxArraySize = Int.MAX_VALUE - 8\n private const val defaultMinCapacity = 10\n\n internal fun newCapacity(oldCapacity: Int, minCapacity: Int): Int {\n // overflow-conscious\n var newCapacity = oldCapacity + (oldCapacity shr 1)\n if (newCapacity - minCapacity < 0)\n newCapacity = minCapacity\n if (newCapacity - maxArraySize > 0)\n newCapacity = if (minCapacity > maxArraySize) Int.MAX_VALUE else maxArraySize\n return newCapacity\n }\n }\n\n // For testing only\n internal fun internalStructure(structure: (head: Int, elements: Array) -> Unit) {\n val tail = internalIndex(size)\n val head = if (isEmpty() || head < tail) head else head - elementData.size\n structure(head, toArray())\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(sumOf { 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@OptIn(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 == null || other == null || 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 if (this == null) return \"null\"\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@OptIn(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-2020 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/**\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-2020 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 * 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 * 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 * Converts this [Iterable] to a list if it is not a [Collection].\n * Otherwise, returns this.\n */\ninternal fun Iterable.convertToListIfNotCollection(): Collection =\n if (this is Collection) this else toList()\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.convertToListIfNotCollection())\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 list = elements.toList()\n return list.isNotEmpty() && removeAll(list)\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.asList())\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.convertToListIfNotCollection())\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.asList())\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 list = elements.toList()\n if (list.isNotEmpty())\n return retainAll(list)\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/**\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/**\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 * Removes the first element from this mutable list and returns that removed element, or throws [NoSuchElementException] if this list is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun MutableList.removeFirst(): T = if (isEmpty()) throw NoSuchElementException(\"List is empty.\") else removeAt(0)\n\n/**\n * Removes the first element from this mutable list and returns that removed element, or returns `null` if this list is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun MutableList.removeFirstOrNull(): T? = if (isEmpty()) null else removeAt(0)\n\n/**\n * Removes the last element from this mutable list and returns that removed element, or throws [NoSuchElementException] if this list is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun MutableList.removeLast(): T = if (isEmpty()) throw NoSuchElementException(\"List is empty.\") else removeAt(lastIndex)\n\n/**\n * Removes the last element from this mutable list and returns that removed element, or returns `null` if this list is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun MutableList.removeLastOrNull(): T? = if (isEmpty()) null else removeAt(lastIndex)\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 * Copyright 2010-2023 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-2023 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 override fun iterator(): Iterator = listIterator(0)\n override fun listIterator(): ListIterator = listIterator(0)\n\n override fun listIterator(index: Int): ListIterator = object : ListIterator {\n val delegateIterator = delegate.listIterator(reversePositionIndex(index))\n override fun hasNext(): Boolean = delegateIterator.hasPrevious()\n override fun hasPrevious(): Boolean = delegateIterator.hasNext()\n override fun next(): T = delegateIterator.previous()\n override fun nextIndex(): Int = reverseIteratorIndex(delegateIterator.previousIndex())\n override fun previous(): T = delegateIterator.next()\n override fun previousIndex(): Int = reverseIteratorIndex(delegateIterator.nextIndex())\n }\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 override fun iterator(): MutableIterator = listIterator(0)\n override fun listIterator(): MutableListIterator = listIterator(0)\n\n override fun listIterator(index: Int): MutableListIterator = object : MutableListIterator {\n val delegateIterator = delegate.listIterator(reversePositionIndex(index))\n override fun hasNext(): Boolean = delegateIterator.hasPrevious()\n override fun hasPrevious(): Boolean = delegateIterator.hasNext()\n override fun next(): T = delegateIterator.previous()\n override fun nextIndex(): Int = reverseIteratorIndex(delegateIterator.previousIndex())\n override fun previous(): T = delegateIterator.next()\n override fun previousIndex(): Int = reverseIteratorIndex(delegateIterator.nextIndex())\n override fun add(element: T) {\n delegateIterator.add(element)\n // After an insertion previous() will return an inserted element.\n // Moving a cursor back by one element to return a correct value from next().\n delegateIterator.previous()\n }\n\n override fun remove() = delegateIterator.remove()\n override fun set(element: T) = delegateIterator.set(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\nprivate fun List<*>.reverseIteratorIndex(index: Int) = lastIndex - index\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:OptIn(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\")\n@Suppress(\"DEPRECATION\")\npublic fun sequence(@BuilderInference block: suspend SequenceScope.() -> Unit): Sequence = Sequence { iterator(block) }\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\")\n@Suppress(\"DEPRECATION\")\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/**\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\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 bufferInitialCapacity = size.coerceAtMost(1024)\n val gap = step - size\n if (gap >= 0) {\n var buffer = ArrayList(bufferInitialCapacity)\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 var buffer = RingBuffer(bufferInitialCapacity)\n for (e in iterator) {\n buffer.add(e)\n if (buffer.isFull()) {\n if (buffer.size < size) { buffer = buffer.expanded(maxCapacity = size); continue }\n\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(private val buffer: Array, filledSize: Int) : AbstractList(), RandomAccess {\n init {\n require(filledSize >= 0) { \"ring buffer filled size should not be negative but it is $filledSize\" }\n require(filledSize <= buffer.size) { \"ring buffer filled size: $filledSize cannot be larger than the buffer size: ${buffer.size}\" }\n }\n\n constructor(capacity: Int) : this(arrayOfNulls(capacity), 0)\n\n private val capacity = buffer.size\n private var startIndex: Int = 0\n\n override var size: Int = filledSize\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 * Creates a new ring buffer with the capacity equal to the minimum of [maxCapacity] and 1.5 * [capacity].\n * The returned ring buffer contains the same elements as this ring buffer.\n */\n fun expanded(maxCapacity: Int): RingBuffer {\n val newCapacity = (capacity + (capacity shr 1) + 1).coerceAtMost(maxCapacity)\n val newBuffer = if (startIndex == 0) buffer.copyOf(newCapacity) else toArray(arrayOfNulls(newCapacity))\n return RingBuffer(newBuffer, 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","/*\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, fromIndex: Int, toIndex: Int) = quickSort(array, fromIndex, toIndex - 1)\n@ExperimentalUnsignedTypes\ninternal fun sortArray(array: UShortArray, fromIndex: Int, toIndex: Int) = quickSort(array, fromIndex, toIndex - 1)\n@ExperimentalUnsignedTypes\ninternal fun sortArray(array: UIntArray, fromIndex: Int, toIndex: Int) = quickSort(array, fromIndex, toIndex - 1)\n@ExperimentalUnsignedTypes\ninternal fun sortArray(array: ULongArray, fromIndex: Int, toIndex: Int) = quickSort(array, fromIndex, toIndex - 1)","/*\n * Copyright 2010-2021 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 * Compares this object with the specified object for order. Returns zero if this object is equal\n * to the specified [other] object, a negative number if it's less than [other], or a positive number\n * if it's greater than [other].\n *\n * This function delegates to [Comparable.compareTo] and allows to call it in infix form.\n */\n@InlineOnly\n@SinceKotlin(\"1.6\")\npublic inline infix fun Comparable.compareTo(other: T): Int =\n this.compareTo(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\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 [OptIn] annotation, e.g. `@OptIn(ExperimentalContracts::class)`,\n * or by using the compiler argument `-opt-in=kotlin.contracts.ExperimentalContracts`.\n */\n@Retention(AnnotationRetention.BINARY)\n@SinceKotlin(\"1.3\")\n@RequiresOptIn\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","/*\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 * [ContinuationInterceptor] behaves like a [polymorphic element][AbstractCoroutineContextKey], meaning that\n * its implementation delegates [get][CoroutineContext.Element.get] and [minusKey][CoroutineContext.Element.minusKey]\n * to [getPolymorphicElement] and [minusPolymorphicKey] respectively.\n * [ContinuationInterceptor] subtypes can be extracted from the coroutine context using either [ContinuationInterceptor.Key]\n * or subtype key if it extends [AbstractCoroutineContextKey].\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 public override operator fun get(key: CoroutineContext.Key): E? {\n // getPolymorphicKey specialized for ContinuationInterceptor key\n @OptIn(ExperimentalStdlibApi::class)\n if (key is AbstractCoroutineContextKey<*, *>) {\n @Suppress(\"UNCHECKED_CAST\")\n return if (key.isSubKey(this.key)) key.tryCast(this) as? E else null\n }\n @Suppress(\"UNCHECKED_CAST\")\n return if (ContinuationInterceptor === key) this as E else null\n }\n\n\n public override fun minusKey(key: CoroutineContext.Key<*>): CoroutineContext {\n // minusPolymorphicKey specialized for ContinuationInterceptor key\n @OptIn(ExperimentalStdlibApi::class)\n if (key is AbstractCoroutineContextKey<*, *>) {\n return if (key.isSubKey(this.key) && key.tryCast(this) != null) EmptyCoroutineContext else this\n }\n return if (ContinuationInterceptor === 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\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-2020 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.Element\nimport kotlin.coroutines.CoroutineContext.Key\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 * Base class for [CoroutineContext.Key] associated with polymorphic [CoroutineContext.Element] implementation.\n * Polymorphic element implementation implies delegating its [get][Element.get] and [minusKey][Element.minusKey]\n * to [getPolymorphicElement] and [minusPolymorphicKey] respectively.\n *\n * Polymorphic elements can be extracted from the coroutine context using both element key and its supertype key.\n * Example of polymorphic elements:\n * ```\n * open class BaseElement : CoroutineContext.Element {\n * companion object Key : CoroutineContext.Key\n * override val key: CoroutineContext.Key<*> get() = Key\n * // It is important to use getPolymorphicKey and minusPolymorphicKey\n * override fun get(key: CoroutineContext.Key): E? = getPolymorphicElement(key)\n * override fun minusKey(key: CoroutineContext.Key<*>): CoroutineContext = minusPolymorphicKey(key)\n * }\n *\n * class DerivedElement : BaseElement() {\n * companion object Key : AbstractCoroutineContextKey(BaseElement, { it as? DerivedElement })\n * }\n * // Now it is possible to query both `BaseElement` and `DerivedElement`\n * someContext[BaseElement] // Returns BaseElement?, non-null both for BaseElement and DerivedElement instances\n * someContext[DerivedElement] // Returns DerivedElement?, non-null only for DerivedElement instance\n * ```\n * @param B base class of a polymorphic element\n * @param baseKey an instance of base key\n * @param E element type associated with the current key\n * @param safeCast a function that can safely cast abstract [CoroutineContext.Element] to the concrete [E] type\n * and return the element if it is a subtype of [E] or `null` otherwise.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic abstract class AbstractCoroutineContextKey(\n baseKey: Key,\n private val safeCast: (element: Element) -> E?\n) : Key {\n private val topmostKey: Key<*> = if (baseKey is AbstractCoroutineContextKey<*, *>) baseKey.topmostKey else baseKey\n\n internal fun tryCast(element: Element): E? = safeCast(element)\n internal fun isSubKey(key: Key<*>): Boolean = key === this || topmostKey === key\n}\n\n/**\n * Returns the current element if it is associated with the given [key] in a polymorphic manner or `null` otherwise.\n * This method returns non-null value if either [Element.key] is equal to the given [key] or if the [key] is associated\n * with [Element.key] via [AbstractCoroutineContextKey].\n * See [AbstractCoroutineContextKey] for the example of usage.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic fun Element.getPolymorphicElement(key: Key): E? {\n if (key is AbstractCoroutineContextKey<*, *>) {\n @Suppress(\"UNCHECKED_CAST\")\n return if (key.isSubKey(this.key)) key.tryCast(this) as? E else null\n }\n @Suppress(\"UNCHECKED_CAST\")\n return if (this.key === key) this as E else null\n}\n\n/**\n * Returns empty coroutine context if the element is associated with the given [key] in a polymorphic manner\n * or `null` otherwise.\n * This method returns empty context if either [Element.key] is equal to the given [key] or if the [key] is associated\n * with [Element.key] via [AbstractCoroutineContextKey].\n * See [AbstractCoroutineContextKey] for the example of usage.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic fun Element.minusPolymorphicKey(key: Key<*>): CoroutineContext {\n if (key is AbstractCoroutineContextKey<*, *>) {\n return if (key.isSubKey(this.key) && key.tryCast(this) != null) EmptyCoroutineContext else this\n }\n return if (this.key === key) EmptyCoroutineContext else this\n}\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-2020 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.contracts.*\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 contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }\n throw NotImplementedError(\"Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic\")\n}\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-2022 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(\"EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE\") // for building kotlin-stdlib-jvm-minimal-for-test\n\npackage kotlin.enums\n\n/**\n * A specialized immutable implementation of [List] interface that\n * contains all enum entries of the specified enum type [E].\n * [EnumEntries] contains all enum entries in the order they are declared in the source code,\n * consistently with the corresponding [Enum.ordinal] values.\n *\n * An instance of this interface can only be obtained from `EnumClass.entries` property.\n *\n * #### Implementation note\n * All basic operations, such as `contains` and `indexOf`, are executed in constant time and are likely to be\n * faster than regular `ArrayList` counterparts.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic sealed interface EnumEntries> : List\n\n@PublishedApi\n@SinceKotlin(\"1.8\") // Used by pre-1.9.0 JVM compiler for the feature in preview mode. Can be safely removed around 2.1\ninternal fun > enumEntries(entriesProvider: () -> Array): EnumEntries = EnumEntriesList(entriesProvider())\n\n@PublishedApi\n@SinceKotlin(\"1.8\")\ninternal fun > enumEntries(entries: Array): EnumEntries = EnumEntriesList(entries)\n\n@SinceKotlin(\"1.8\")\nprivate class EnumEntriesList>(private val entries: Array) : EnumEntries, AbstractList(), Serializable {\n// WA for JS IR bug:\n// class type parameter name MUST be different from E (AbstractList type parameter),\n// otherwise the bridge names for contains() and indexOf() will be clashed with the original method names,\n// and produced JS code will not contain type checks and will not work correctly.\n\n override val size: Int\n get() = entries.size\n\n override fun get(index: Int): T {\n checkElementIndex(index, entries.size)\n return entries[index]\n }\n\n // By definition, EnumEntries contains **all** enums in declaration order,\n // thus we are able to short-circuit the implementation here\n\n override fun contains(element: T): Boolean {\n @Suppress(\"SENSELESS_COMPARISON\")\n if (element === null) return false // WA for JS IR bug\n // Check identity due to UnsafeVariance\n val target = entries.getOrNull(element.ordinal)\n return target === element\n }\n\n override fun indexOf(element: T): Int {\n @Suppress(\"SENSELESS_COMPARISON\")\n if (element === null) return -1 // WA for JS IR bug\n // Check identity due to UnsafeVariance\n val ordinal = element.ordinal\n val target = entries.getOrNull(ordinal)\n return if (target === element) ordinal else -1\n }\n\n override fun lastIndexOf(element: T): Int = indexOf(element)\n\n @Suppress(\"unused\")\n private fun writeReplace(): Any {\n // Used for Java serialization: EESP ensures that deserialized object **always** reflects the state of the enum on the target classpath\n return EnumEntriesSerializationProxy(entries)\n }\n}\n\ninternal expect class EnumEntriesSerializationProxy>(entries: Array)\n","/*\n * Copyright 2010-2022 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 * This annotation marks the experimental [ObjCName][kotlin.native.ObjCName] annotation.\n */\n@RequiresOptIn\n@Target(AnnotationTarget.ANNOTATION_CLASS)\n@Retention(AnnotationRetention.BINARY)\n@MustBeDocumented\n@SinceKotlin(\"1.8\")\npublic annotation class ExperimentalObjCName\n","/*\n * Copyright 2010-2022 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 * This annotation marks the experimental Objective-C export refinement annotations.\n */\n@RequiresOptIn\n@Target(AnnotationTarget.ANNOTATION_CLASS)\n@Retention(AnnotationRetention.BINARY)\n@MustBeDocumented\n@SinceKotlin(\"1.8\")\npublic annotation class ExperimentalObjCRefinement\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 [OptIn] annotation, e.g. `@OptIn(ExperimentalTypeInference::class)`,\n * or by using the compiler argument `-opt-in=kotlin.experimental.ExperimentalTypeInference`.\n */\n@RequiresOptIn(level = RequiresOptIn.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, AnnotationTarget.CONSTRUCTOR)\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.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-2022 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.encoding\n\nimport kotlin.native.concurrent.SharedImmutable\n\n// Benchmarks repository: https://github.com/qurbonzoda/KotlinBase64Benchmarks\n\n/**\n * Provides Base64 encoding and decoding functionality.\n *\n * This class is not supposed to be instantiated or inherited.\n * However, predefined instances of this class are available for use.\n * The companion object [Base64.Default] is the default instance of [Base64].\n * There are also [Base64.UrlSafe] and [Base64.Mime] instances.\n */\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\npublic open class Base64 private constructor(\n internal val isUrlSafe: Boolean,\n internal val isMimeScheme: Boolean\n) {\n init {\n require(!isUrlSafe || !isMimeScheme)\n }\n\n /**\n * Encodes bytes from the specified [source] array or its subrange.\n * Returns a [ByteArray] containing the resulting symbols.\n *\n * If the size of the [source] array or its subrange is not an integral multiple of 3,\n * the result is padded with `'='` to an integral multiple of 4 symbols.\n *\n * Each resulting symbol occupies one byte in the returned byte array.\n *\n * Use [encode] to get the output in string form.\n *\n * @param source the array to encode bytes from.\n * @param startIndex the beginning (inclusive) of the subrange to encode, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to encode, size of the [source] array by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of [source] array indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n *\n * @return a [ByteArray] with the resulting symbols.\n */\n public fun encodeToByteArray(source: ByteArray, startIndex: Int = 0, endIndex: Int = source.size): ByteArray {\n return platformEncodeToByteArray(source, startIndex, endIndex)\n }\n\n /**\n * Encodes bytes from the specified [source] array or its subrange and writes resulting symbols into the [destination] array.\n * Returns the number of symbols written.\n *\n * If the size of the [source] array or its subrange is not an integral multiple of 3,\n * the result is padded with `'='` to an integral multiple of 4 symbols.\n *\n * @param source the array to encode bytes from.\n * @param destination the array to write symbols into.\n * @param destinationOffset the starting index in the [destination] array to write symbols to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to encode, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to encode, size of the [source] array by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of [source] array indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the resulting symbols don'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 number of symbols written into [destination] array.\n */\n public fun encodeIntoByteArray(\n source: ByteArray,\n destination: ByteArray,\n destinationOffset: Int = 0,\n startIndex: Int = 0,\n endIndex: Int = source.size\n ): Int {\n return platformEncodeIntoByteArray(source, destination, destinationOffset, startIndex, endIndex)\n }\n\n /**\n * Encodes bytes from the specified [source] array or its subrange.\n * Returns a string with the resulting symbols.\n *\n * If the size of the [source] array or its subrange is not an integral multiple of 3,\n * the result is padded with `'='` to an integral multiple of 4 symbols.\n *\n * Use [encodeToByteArray] to get the output in [ByteArray] form.\n *\n * @param source the array to encode bytes from.\n * @param startIndex the beginning (inclusive) of the subrange to encode, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to encode, size of the [source] array by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of [source] array indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n *\n * @return a string with the resulting symbols.\n */\n public fun encode(source: ByteArray, startIndex: Int = 0, endIndex: Int = source.size): String {\n return platformEncodeToString(source, startIndex, endIndex)\n }\n\n /**\n * Encodes bytes from the specified [source] array or its subrange and appends resulting symbols to the [destination] appendable.\n * Returns the destination appendable.\n *\n * If the size of the [source] array or its subrange is not an integral multiple of 3,\n * the result is padded with `'='` to an integral multiple of 4 symbols.\n *\n * @param source the array to encode bytes from.\n * @param destination the appendable to append symbols to.\n * @param startIndex the beginning (inclusive) of the subrange to encode, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to encode, size of the [source] array by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of [source] array indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n *\n * @return the destination appendable.\n */\n public fun encodeToAppendable(\n source: ByteArray,\n destination: A,\n startIndex: Int = 0,\n endIndex: Int = source.size\n ): A {\n val stringResult = platformEncodeToString(source, startIndex, endIndex)\n destination.append(stringResult)\n return destination\n }\n\n /**\n * Decodes symbols from the specified [source] array or its subrange.\n * Returns a [ByteArray] containing the resulting bytes.\n *\n * The symbols for decoding are not required to be padded.\n * However, if there is a padding character present, the correct amount of padding character(s) must be present.\n * The padding character `'='` is interpreted as the end of the encoded byte data. Subsequent symbols are prohibited.\n *\n * @param source the array to decode symbols from.\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 the [source] array by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of [source] array indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException when the symbols for decoding are padded incorrectly or there are extra symbols after the padding.\n *\n * @return a [ByteArray] with the resulting bytes.\n */\n public fun decode(source: ByteArray, startIndex: Int = 0, endIndex: Int = source.size): ByteArray {\n checkSourceBounds(source.size, startIndex, endIndex)\n\n val decodeSize = decodeSize(source, startIndex, endIndex)\n val destination = ByteArray(decodeSize)\n\n val bytesWritten = decodeImpl(source, destination, 0, startIndex, endIndex)\n\n check(bytesWritten == destination.size)\n\n return destination\n }\n\n /**\n * Decodes symbols from the specified [source] array or its subrange and writes resulting bytes into the [destination] array.\n * Returns the number of bytes written.\n *\n * The symbols for decoding are not required to be padded.\n * However, if there is a padding character present, the correct amount of padding character(s) must be present.\n * The padding character `'='` is interpreted as the end of the encoded byte data. Subsequent symbols are prohibited.\n *\n * @param source the array to decode symbols from.\n * @param destination the array to write bytes into.\n * @param destinationOffset the starting index in the [destination] array to write bytes to, 0 by default.\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 the [source] array by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of [source] array indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the resulting bytes don'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 * @throws IllegalArgumentException when the symbols for decoding are padded incorrectly or there are extra symbols after the padding.\n *\n * @return the number of bytes written into [destination] array.\n */\n public fun decodeIntoByteArray(\n source: ByteArray,\n destination: ByteArray,\n destinationOffset: Int = 0,\n startIndex: Int = 0,\n endIndex: Int = source.size\n ): Int {\n checkSourceBounds(source.size, startIndex, endIndex)\n checkDestinationBounds(destination.size, destinationOffset, decodeSize(source, startIndex, endIndex))\n\n return decodeImpl(source, destination, destinationOffset, startIndex, endIndex)\n }\n\n /**\n * Decodes symbols from the specified [source] char sequence or its substring.\n * Returns a [ByteArray] containing the resulting bytes.\n *\n * The symbols for decoding are not required to be padded.\n * However, if there is a padding character present, the correct amount of padding character(s) must be present.\n * The padding character `'='` is interpreted as the end of the encoded byte data. Subsequent symbols are prohibited.\n *\n * @param source the char sequence to decode symbols from.\n * @param startIndex the beginning (inclusive) of the substring to decode, 0 by default.\n * @param endIndex the end (exclusive) of the substring to decode, length of the [source] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of [source] indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException when the symbols for decoding are padded incorrectly or there are extra symbols after the padding.\n *\n * @return a [ByteArray] with the resulting bytes.\n */\n public fun decode(source: CharSequence, startIndex: Int = 0, endIndex: Int = source.length): ByteArray {\n val byteSource = platformCharsToBytes(source, startIndex, endIndex)\n return decode(byteSource)\n }\n\n /**\n * Decodes symbols from the specified [source] char sequence or its substring and writes resulting bytes into the [destination] array.\n * Returns the number of bytes written.\n *\n * The symbols for decoding are not required to be padded.\n * However, if there is a padding character present, the correct amount of padding character(s) must be present.\n * The padding character `'='` is interpreted as the end of the encoded byte data. Subsequent symbols are prohibited.\n *\n * @param source the char sequence to decode symbols from.\n * @param destination the array to write bytes into.\n * @param destinationOffset the starting index in the [destination] array to write bytes to, 0 by default.\n * @param startIndex the beginning (inclusive) of the substring to decode, 0 by default.\n * @param endIndex the end (exclusive) of the substring to decode, length of the [source] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of [source] indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the resulting bytes don'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 * @throws IllegalArgumentException when the symbols for decoding are padded incorrectly or there are extra symbols after the padding.\n *\n * @return the number of bytes written into [destination] array.\n */\n public fun decodeIntoByteArray(\n source: CharSequence,\n destination: ByteArray,\n destinationOffset: Int = 0,\n startIndex: Int = 0,\n endIndex: Int = source.length\n ): Int {\n val byteSource = platformCharsToBytes(source, startIndex, endIndex)\n return decodeIntoByteArray(byteSource, destination, destinationOffset)\n }\n\n // internal functions\n\n internal fun encodeToByteArrayImpl(source: ByteArray, startIndex: Int, endIndex: Int): ByteArray {\n checkSourceBounds(source.size, startIndex, endIndex)\n\n val encodeSize = encodeSize(endIndex - startIndex)\n val destination = ByteArray(encodeSize)\n encodeIntoByteArrayImpl(source, destination, 0, startIndex, endIndex)\n return destination\n }\n\n internal fun encodeIntoByteArrayImpl(\n source: ByteArray,\n destination: ByteArray,\n destinationOffset: Int,\n startIndex: Int,\n endIndex: Int\n ): Int {\n checkSourceBounds(source.size, startIndex, endIndex)\n checkDestinationBounds(destination.size, destinationOffset, encodeSize(endIndex - startIndex))\n\n val encodeMap = if (isUrlSafe) base64UrlEncodeMap else base64EncodeMap\n var sourceIndex = startIndex\n var destinationIndex = destinationOffset\n val groupsPerLine = if (isMimeScheme) mimeGroupsPerLine else Int.MAX_VALUE\n\n while (sourceIndex + 2 < endIndex) {\n val groups = minOf((endIndex - sourceIndex) / bytesPerGroup, groupsPerLine)\n for (i in 0 until groups) {\n val byte1 = source[sourceIndex++].toInt() and 0xFF\n val byte2 = source[sourceIndex++].toInt() and 0xFF\n val byte3 = source[sourceIndex++].toInt() and 0xFF\n val bits = (byte1 shl 16) or (byte2 shl 8) or byte3\n destination[destinationIndex++] = encodeMap[bits ushr 18]\n destination[destinationIndex++] = encodeMap[(bits ushr 12) and 0x3F]\n destination[destinationIndex++] = encodeMap[(bits ushr 6) and 0x3F]\n destination[destinationIndex++] = encodeMap[bits and 0x3F]\n }\n if (groups == groupsPerLine && sourceIndex != endIndex) {\n destination[destinationIndex++] = mimeLineSeparatorSymbols[0]\n destination[destinationIndex++] = mimeLineSeparatorSymbols[1]\n }\n }\n\n when (endIndex - sourceIndex) {\n 1 -> {\n val byte1 = source[sourceIndex++].toInt() and 0xFF\n val bits = byte1 shl 4\n destination[destinationIndex++] = encodeMap[bits ushr 6]\n destination[destinationIndex++] = encodeMap[bits and 0x3F]\n destination[destinationIndex++] = padSymbol\n destination[destinationIndex++] = padSymbol\n }\n 2 -> {\n val byte1 = source[sourceIndex++].toInt() and 0xFF\n val byte2 = source[sourceIndex++].toInt() and 0xFF\n val bits = (byte1 shl 10) or (byte2 shl 2)\n destination[destinationIndex++] = encodeMap[bits ushr 12]\n destination[destinationIndex++] = encodeMap[(bits ushr 6) and 0x3F]\n destination[destinationIndex++] = encodeMap[bits and 0x3F]\n destination[destinationIndex++] = padSymbol\n }\n }\n\n check(sourceIndex == endIndex)\n\n return destinationIndex - destinationOffset\n }\n\n private fun encodeSize(sourceSize: Int): Int {\n // includes padding chars\n val groups = (sourceSize + bytesPerGroup - 1) / bytesPerGroup\n val lineSeparators = if (isMimeScheme) (groups - 1) / mimeGroupsPerLine else 0\n val size = groups * symbolsPerGroup + lineSeparators * 2\n if (size < 0) { // Int overflow\n throw IllegalArgumentException(\"Input is too big\")\n }\n return size\n }\n\n private fun decodeImpl(\n source: ByteArray,\n destination: ByteArray,\n destinationOffset: Int,\n startIndex: Int,\n endIndex: Int\n ): Int {\n val decodeMap = if (isUrlSafe) base64UrlDecodeMap else base64DecodeMap\n var payload = 0\n var byteStart = -bitsPerByte\n var sourceIndex = startIndex\n var destinationIndex = destinationOffset\n\n while (sourceIndex < endIndex) {\n if (byteStart == -bitsPerByte && sourceIndex + 3 < endIndex) {\n val symbol1 = decodeMap[source[sourceIndex++].toInt() and 0xFF]\n val symbol2 = decodeMap[source[sourceIndex++].toInt() and 0xFF]\n val symbol3 = decodeMap[source[sourceIndex++].toInt() and 0xFF]\n val symbol4 = decodeMap[source[sourceIndex++].toInt() and 0xFF]\n val bits = (symbol1 shl 18) or (symbol2 shl 12) or (symbol3 shl 6) or symbol4\n if (bits >= 0) { // all base64 symbols\n destination[destinationIndex++] = (bits shr 16).toByte()\n destination[destinationIndex++] = (bits shr 8).toByte()\n destination[destinationIndex++] = bits.toByte()\n continue\n }\n sourceIndex -= 4\n }\n\n val symbol = source[sourceIndex].toInt() and 0xFF\n val symbolBits = decodeMap[symbol]\n if (symbolBits < 0) {\n if (symbolBits == -2) {\n sourceIndex = handlePaddingSymbol(source, sourceIndex, endIndex, byteStart)\n break\n } else if (isMimeScheme) {\n sourceIndex += 1\n continue\n } else {\n throw IllegalArgumentException(\"Invalid symbol '${symbol.toChar()}'(${symbol.toString(radix = 8)}) at index $sourceIndex\")\n }\n } else {\n sourceIndex += 1\n }\n\n payload = (payload shl bitsPerSymbol) or symbolBits\n byteStart += bitsPerSymbol\n\n if (byteStart >= 0) {\n destination[destinationIndex++] = (payload ushr byteStart).toByte()\n\n payload = payload and ((1 shl byteStart) - 1)\n byteStart -= bitsPerByte\n }\n }\n\n // pad or end of input\n\n if (byteStart == -bitsPerByte + bitsPerSymbol) { // dangling single symbol, incorrectly encoded\n throw IllegalArgumentException(\"The last unit of input does not have enough bits\")\n }\n\n// check(payload == 0) // the padded bits are allowed to be non-zero\n\n sourceIndex = skipIllegalSymbolsIfMime(source, sourceIndex, endIndex)\n if (sourceIndex < endIndex) {\n val symbol = source[sourceIndex].toInt() and 0xFF\n throw IllegalArgumentException(\"Symbol '${symbol.toChar()}'(${symbol.toString(radix = 8)}) at index ${sourceIndex - 1} is prohibited after the pad character\")\n }\n\n return destinationIndex - destinationOffset\n }\n\n private fun decodeSize(source: ByteArray, startIndex: Int, endIndex: Int): Int {\n var symbols = endIndex - startIndex\n if (symbols == 0) {\n return 0\n }\n if (symbols == 1) {\n throw IllegalArgumentException(\"Input should have at list 2 symbols for Base64 decoding, startIndex: $startIndex, endIndex: $endIndex\")\n }\n if (isMimeScheme) {\n for (index in startIndex until endIndex) {\n val symbol = source[index].toInt() and 0xFF\n val symbolBits = base64DecodeMap[symbol]\n if (symbolBits < 0) {\n if (symbolBits == -2) {\n symbols -= endIndex - index\n break\n }\n symbols--\n }\n }\n } else if (source[endIndex - 1] == padSymbol) {\n symbols--\n if (source[endIndex - 2] == padSymbol) {\n symbols--\n }\n }\n return ((symbols.toLong() * bitsPerSymbol) / bitsPerByte).toInt() // conversion due to possible Int overflow\n }\n\n internal fun charsToBytesImpl(source: CharSequence, startIndex: Int, endIndex: Int): ByteArray {\n checkSourceBounds(source.length, startIndex, endIndex)\n\n val byteArray = ByteArray(endIndex - startIndex)\n var length = 0\n for (index in startIndex until endIndex) {\n val symbol = source[index].code\n if (symbol <= 0xFF) {\n byteArray[length++] = symbol.toByte()\n } else {\n // the replacement byte must be an illegal symbol\n // so that mime skips it and basic throws with correct index\n byteArray[length++] = 0x3F\n }\n }\n return byteArray\n }\n\n internal fun bytesToStringImpl(source: ByteArray): String {\n val stringBuilder = StringBuilder(source.size)\n for (byte in source) {\n stringBuilder.append(byte.toInt().toChar())\n }\n return stringBuilder.toString()\n }\n\n private fun handlePaddingSymbol(source: ByteArray, padIndex: Int, endIndex: Int, byteStart: Int): Int {\n return when (byteStart) {\n -bitsPerByte -> // =\n throw IllegalArgumentException(\"Redundant pad character at index $padIndex\")\n -bitsPerByte + bitsPerSymbol -> // x=, dangling single symbol\n padIndex + 1\n -bitsPerByte + 2 * bitsPerSymbol - bitsPerByte -> { // xx=\n val secondPadIndex = skipIllegalSymbolsIfMime(source, padIndex + 1, endIndex)\n if (secondPadIndex == endIndex || source[secondPadIndex] != padSymbol) {\n throw IllegalArgumentException(\"Missing one pad character at index $secondPadIndex\")\n }\n secondPadIndex + 1\n }\n -bitsPerByte + 3 * bitsPerSymbol - 2 * bitsPerByte -> // xxx=\n padIndex + 1\n else ->\n error(\"Unreachable\")\n }\n }\n\n private fun skipIllegalSymbolsIfMime(source: ByteArray, startIndex: Int, endIndex: Int): Int {\n if (!isMimeScheme) {\n return startIndex\n }\n var sourceIndex = startIndex\n while (sourceIndex < endIndex) {\n val symbol = source[sourceIndex].toInt() and 0xFF\n if (base64DecodeMap[symbol] != -1) {\n return sourceIndex\n }\n sourceIndex += 1\n }\n return sourceIndex\n }\n\n internal fun checkSourceBounds(sourceSize: Int, startIndex: Int, endIndex: Int) {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, sourceSize)\n }\n\n private fun checkDestinationBounds(destinationSize: Int, destinationOffset: Int, capacityNeeded: Int) {\n if (destinationOffset < 0 || destinationOffset > destinationSize) {\n throw IndexOutOfBoundsException(\"destination offset: $destinationOffset, destination size: $destinationSize\")\n }\n\n val destinationEndIndex = destinationOffset + capacityNeeded\n if (destinationEndIndex < 0 || destinationEndIndex > destinationSize) {\n throw IndexOutOfBoundsException(\n \"The destination array does not have enough capacity, \" +\n \"destination offset: $destinationOffset, destination size: $destinationSize, capacity needed: $capacityNeeded\"\n )\n }\n }\n\n // companion object\n\n /**\n * The \"base64\" encoding specified by [`RFC 4648 section 4`](https://www.rfc-editor.org/rfc/rfc4648#section-4),\n * Base 64 Encoding.\n *\n * Uses \"The Base 64 Alphabet\" as specified in Table 1 of RFC 4648 for encoding and decoding.\n * Encode operation does not add any line separator character.\n * Decode operation throws if it encounters a character outside the base64 alphabet.\n *\n * The character `'='` is used for padding.\n */\n public companion object Default : Base64(isUrlSafe = false, isMimeScheme = false) {\n\n private const val bitsPerByte: Int = 8\n private const val bitsPerSymbol: Int = 6\n\n internal const val bytesPerGroup: Int = 3\n internal const val symbolsPerGroup: Int = 4\n\n internal const val padSymbol: Byte = 61 // '='\n\n internal const val mimeLineLength: Int = 76\n private const val mimeGroupsPerLine: Int = mimeLineLength / symbolsPerGroup\n internal val mimeLineSeparatorSymbols: ByteArray = byteArrayOf('\\r'.code.toByte(), '\\n'.code.toByte())\n\n /**\n * The \"base64url\" encoding specified by [`RFC 4648 section 5`](https://www.rfc-editor.org/rfc/rfc4648#section-5),\n * Base 64 Encoding with URL and Filename Safe Alphabet.\n *\n * Uses \"The URL and Filename safe Base 64 Alphabet\" as specified in Table 2 of RFC 4648 for encoding and decoding.\n * Encode operation does not add any line separator character.\n * Decode operation throws if it encounters a character outside the base64url alphabet.\n *\n * The character `'='` is used for padding.\n */\n public val UrlSafe: Base64 = Base64(isUrlSafe = true, isMimeScheme = false)\n\n /**\n * The encoding specified by [`RFC 2045 section 6.8`](https://www.rfc-editor.org/rfc/rfc2045#section-6.8),\n * Base64 Content-Transfer-Encoding.\n *\n * Uses \"The Base64 Alphabet\" as specified in Table 1 of RFC 2045 for encoding and decoding.\n * Encode operation adds CRLF every 76 symbols. No line separator is added to the end of the encoded output.\n * Decode operation ignores all line separators and other characters outside the base64 alphabet.\n *\n * The character `'='` is used for padding.\n */\n public val Mime: Base64 = Base64(isUrlSafe = false, isMimeScheme = true)\n }\n}\n\n\n// \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\n@SharedImmutable\nprivate val base64EncodeMap = byteArrayOf(\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, /* 0 - 15 */\n 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, /* 16 - 31 */\n 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, /* 32 - 47 */\n 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47, /* 48 - 63 */\n)\n\n@ExperimentalEncodingApi\n@SharedImmutable\nprivate val base64DecodeMap = IntArray(256).apply {\n this.fill(-1)\n this[Base64.padSymbol.toInt()] = -2\n base64EncodeMap.forEachIndexed { index, symbol ->\n this[symbol.toInt()] = index\n }\n}\n\n// \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\"\n@SharedImmutable\nprivate val base64UrlEncodeMap = byteArrayOf(\n 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, /* 0 - 15 */\n 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, /* 16 - 31 */\n 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, /* 32 - 47 */\n 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 45, 95, /* 48 - 63 */\n)\n\n@ExperimentalEncodingApi\n@SharedImmutable\nprivate val base64UrlDecodeMap = IntArray(256).apply {\n this.fill(-1)\n this[Base64.padSymbol.toInt()] = -2\n base64UrlEncodeMap.forEachIndexed { index, symbol ->\n this[symbol.toInt()] = index\n }\n}\n\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\ninternal fun isInMimeAlphabet(symbol: Int): Boolean {\n return symbol in base64DecodeMap.indices && base64DecodeMap[symbol] != -1\n}\n\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\ninternal expect fun Base64.platformCharsToBytes(\n source: CharSequence,\n startIndex: Int,\n endIndex: Int\n): ByteArray\n\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\ninternal expect fun Base64.platformEncodeToString(\n source: ByteArray,\n startIndex: Int,\n endIndex: Int\n): String\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\ninternal expect fun Base64.platformEncodeIntoByteArray(\n source: ByteArray,\n destination: ByteArray,\n destinationOffset: Int,\n startIndex: Int,\n endIndex: Int\n): Int\n\n@SinceKotlin(\"1.8\")\n@ExperimentalEncodingApi\ninternal expect fun Base64.platformEncodeToByteArray(\n source: ByteArray,\n startIndex: Int,\n endIndex: Int\n): ByteArray","/*\n * Copyright 2010-2023 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.encoding\n\nimport kotlin.annotation.AnnotationTarget.*\n\n/**\n * This annotation marks the experimental API for encoding and decoding between binary data and printable ASCII character sequences.\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 `@ExperimentalEncodingApi` must be accepted either by\n * annotating that usage with the [OptIn] annotation, e.g. `@OptIn(ExperimentalEncodingApi::class)`,\n * or by using the compiler argument `-opt-in=kotlin.io.encoding.ExperimentalEncodingApi`.\n */\n@RequiresOptIn(level = RequiresOptIn.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@SinceKotlin(\"1.8\")\npublic annotation class ExperimentalEncodingApi","/*\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 public override fun toString(): String =\n \"NotNullProperty(${if (value != null) \"value=$value\" else \"value not initialized yet\"})\"\n}\n\n","/*\n * Copyright 2010-2020 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 * Base interface that can be used for implementing property delegates of read-only properties.\n *\n * This is provided only for convenience; you don't have to extend this interface\n * as long as your property delegate has methods with the same signatures.\n *\n * @param T the type of object which owns the delegated property.\n * @param V the type of the property value.\n */\npublic fun interface ReadOnlyProperty {\n /**\n * Returns the value of the property for the given object.\n * @param thisRef the object for which the value is requested.\n * @param property the metadata for the property.\n * @return the property value.\n */\n public operator fun getValue(thisRef: T, property: KProperty<*>): V\n}\n\n/**\n * Base interface that can be used for implementing property delegates of read-write properties.\n *\n * This is provided only for convenience; you don't have to extend this interface\n * as long as your property delegate has methods with the same signatures.\n *\n * @param T the type of object which owns the delegated property.\n * @param V the type of the property value.\n */\npublic interface ReadWriteProperty : ReadOnlyProperty {\n /**\n * Returns the value of the property for the given object.\n * @param thisRef the object for which the value is requested.\n * @param property the metadata for the property.\n * @return the property value.\n */\n public override operator fun getValue(thisRef: T, property: KProperty<*>): V\n\n /**\n * Sets the value of the property for the given object.\n * @param thisRef the object for which the value is requested.\n * @param property the metadata for the property.\n * @param value the value to set.\n */\n public operator fun setValue(thisRef: T, property: KProperty<*>, value: V)\n}\n\n/**\n * Base interface that can be used for implementing property delegate providers.\n *\n * This is provided only for convenience; you don't have to extend this interface\n * as long as your delegate provider has a method with the same signature.\n *\n * @param T the type of object which owns the delegated property.\n * @param D the type of property delegates this provider provides.\n */\n@SinceKotlin(\"1.4\")\npublic fun interface PropertyDelegateProvider {\n /**\n * Returns the delegate of the property for the given object.\n *\n * This function can be used to extend the logic of creating the object (e.g. perform validation checks)\n * to which the property implementation is delegated.\n *\n * @param thisRef the object for which property delegate is requested.\n * @param property the metadata for the property.\n * @return the property delegate.\n */\n public operator fun provideDelegate(thisRef: T, property: KProperty<*>): D\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: V) : 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: V, newValue: V): 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: V, newValue: V): Unit {}\n\n public override fun getValue(thisRef: Any?, property: KProperty<*>): V {\n return value\n }\n\n public override fun setValue(thisRef: Any?, property: KProperty<*>, value: V) {\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 override fun toString(): String = \"ObservableProperty(value=$value)\"\n}","/*\n * Copyright 2010-2020 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(\"PackageDirectoryMismatch\")\npackage kotlin\n\nimport kotlin.reflect.*\n\n/**\n * An extension operator that allows delegating a read-only property of type [V]\n * to a property reference to a property of type [V] or its subtype.\n *\n * @receiver A property reference to a read-only or mutable property of type [V] or its subtype.\n * The reference is without a receiver, i.e. it either references a top-level property or\n * has the receiver bound to it.\n *\n * Example:\n *\n * ```\n * class Login(val username: String)\n * val defaultLogin = Login(\"Admin\")\n * val defaultUsername by defaultLogin::username\n * // equivalent to\n * val defaultUserName get() = defaultLogin.username\n * ```\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline operator fun KProperty0.getValue(thisRef: Any?, property: KProperty<*>): V {\n return get()\n}\n\n/**\n * An extension operator that allows delegating a mutable property of type [V]\n * to a property reference to a mutable property of the same type [V].\n *\n * @receiver A property reference to a mutable property of type [V].\n * The reference is without a receiver, i.e. it either references a top-level property or\n * has the receiver bound to it.\n *\n * Example:\n *\n * ```\n * class Login(val username: String, var incorrectAttemptCounter: Int = 0)\n * val defaultLogin = Login(\"Admin\")\n * var defaultLoginAttempts by defaultLogin::incorrectAttemptCounter\n * // equivalent to\n * var defaultLoginAttempts: Int\n * get() = defaultLogin.incorrectAttemptCounter\n * set(value) { defaultLogin.incorrectAttemptCounter = value }\n * ```\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline operator fun KMutableProperty0.setValue(thisRef: Any?, property: KProperty<*>, value: V) {\n set(value)\n}\n\n\n/**\n * An extension operator that allows delegating a read-only member or extension property of type [V]\n * to a property reference to a member or extension property of type [V] or its subtype.\n *\n * @receiver A property reference to a read-only or mutable property of type [V] or its subtype.\n * The reference has an unbound receiver of type [T].\n *\n * Example:\n *\n * ```\n * class Login(val username: String)\n * val Login.user by Login::username\n * // equivalent to\n * val Login.user get() = this.username\n * ```\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline operator fun KProperty1.getValue(thisRef: T, property: KProperty<*>): V {\n return get(thisRef)\n}\n\n/**\n * An extension operator that allows delegating a mutable member or extension property of type [V]\n * to a property reference to a member or extension mutable property of the same type [V].\n *\n * @receiver A property reference to a read-only or mutable property of type [V] or its subtype.\n * The reference has an unbound receiver of type [T].\n *\n * Example:\n *\n * ```\n * class Login(val username: String, var incorrectAttemptCounter: Int)\n * var Login.attempts by Login::incorrectAttemptCounter\n * // equivalent to\n * var Login.attempts: Int\n * get() = this.incorrectAttemptCounter\n * set(value) { this.incorrectAttemptCounter = value }\n * ```\n */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline operator fun KMutableProperty1.setValue(thisRef: T, property: KProperty<*>, value: V) {\n set(thisRef, value)\n}","/*\n * Copyright 2010-2021 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 * @sample samples.random.Randoms.nextBits\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 * @sample samples.random.Randoms.nextInt\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 * @sample samples.random.Randoms.nextIntFromUntil\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 * @sample samples.random.Randoms.nextIntFromUntil\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 * @sample samples.random.Randoms.nextLong\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 * @sample samples.random.Randoms.nextLongFromUntil\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 * @sample samples.random.Randoms.nextLongFromUntil\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().toLong() and 0xFFFF_FFFF)\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 * @sample samples.random.Randoms.nextBoolean\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 * @sample samples.random.Randoms.nextDouble\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 * @sample samples.random.Randoms.nextDoubleFromUntil\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 * @sample samples.random.Randoms.nextDoubleFromUntil\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 * @sample samples.random.Randoms.nextFloat\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 * @sample samples.random.Randoms.nextBytes\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 * @sample samples.random.Randoms.nextBytes\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 * @sample samples.random.Randoms.nextBytes\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(), Serializable {\n private val defaultRandom: Random = defaultPlatformRandom()\n\n private object Serialized : Serializable {\n private const val serialVersionUID = 0L\n\n private fun readResolve(): Any = Random\n }\n\n private fun writeReplace(): Any = Serialized\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 =\n defaultRandom.nextBytes(array, fromIndex, toIndex)\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 * On JVM the returned generator is NOT thread-safe. Do not invoke it from multiple threads without proper synchronization.\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 * On JVM the returned generator is NOT thread-safe. Do not invoke it from multiple threads without proper synchronization.\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 * 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.first, range.last + 1)\n range.first > Long.MIN_VALUE -> nextLong(range.first - 1, range.last) + 1\n else -> nextLong()\n}\n\n\ninternal expect fun defaultPlatformRandom(): Random\ninternal expect fun doubleFromParts(hi26: Int, low27: Int): Double\n\ninternal fun fastLog2(value: Int): Int = 31 - value.countLeadingZeroBits()\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-2021 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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\ninternal fun checkUIntRangeBounds(from: UInt, until: UInt) = require(until > from) { boundsErrorMessage(from, until) }\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, using Marsaglia's \"xorwow\" algorithm\n *\n * Cycles after 2^192 - 2^32 repetitions.\n *\n * For more details, see Marsaglia, George (July 2003). \"Xorshift RNGs\". Journal of Statistical Software. 8 (14). doi:10.18637/jss.v008.i14\n *\n * Available at https://www.jstatsoft.org/v08/i14/paper\n *\n */\ninternal class XorWowRandom internal 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(), Serializable {\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 // Equivalent to the xorxow algorithm\n // From Marsaglia, G. 2003. Xorshift RNGs. J. Statis. Soft. 8, 14, p. 5\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 private companion object {\n private const val serialVersionUID: Long = 0L\n }\n}\n","/*\n * Copyright 2010-2023 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: Int = last.code\n private var hasNext: Boolean = if (step > 0) first <= last else first >= last\n private var next: Int = if (hasNext) first.code 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: Int = last\n private var hasNext: Boolean = if (step > 0) first <= last else first >= last\n private var next: Int = 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: Long = last\n private var hasNext: Boolean = if (step > 0) first <= last else first >= last\n private var next: Long = 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-2023 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.code, endInclusive.code, 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 /**\n * Checks if the progression is empty.\n *\n * Progression with a positive step is empty if its first element is greater than the last element.\n * Progression with a negative step is empty if its first element is less than the last element.\n */\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.code + last.code) + 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, endInclusive, step)\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 /**\n * Checks if the progression is empty.\n *\n * Progression with a positive step is empty if its first element is greater than the last element.\n * Progression with a negative step is empty if its first element is less than the last element.\n */\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, endInclusive, step)\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 /**\n * Checks if the progression is empty.\n *\n * Progression with a positive step is empty if its first element is greater than the last element.\n * Progression with a negative step is empty if its first element is less than the last element.\n */\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) where both the lower and upper bounds are included in the range.\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 * A value belongs to the closed range if it is greater than or equal to the [start] bound and less than or equal to the [endInclusive] bound.\n */\n public operator fun contains(value: T): Boolean = value >= start && value <= endInclusive\n\n /**\n * Checks whether the range is empty.\n *\n * The range is empty if its start value is greater than the end value.\n */\n public fun isEmpty(): Boolean = start > endInclusive\n}\n\n/**\n * Represents a range of values (for example, numbers or characters) where the upper bound is not included in the range.\n * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/ranges.html) for more information.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic interface OpenEndRange> {\n /**\n * The minimum value in the range.\n */\n public val start: T\n\n /**\n * The maximum value in the range (exclusive).\n *\n * @throws IllegalStateException can be thrown if the exclusive end bound cannot be represented\n * with a value of type [T].\n */\n public val endExclusive: T\n\n /**\n * Checks whether the specified [value] belongs to the range.\n *\n * A value belongs to the open-ended range if it is greater than or equal to the [start] bound and strictly less than the [endExclusive] bound.\n */\n public operator fun contains(value: T): Boolean = value >= start && value < endExclusive\n\n /**\n * Checks whether the range is empty.\n *\n * The open-ended range is empty if its start value is greater than or equal to the end value.\n */\n public fun isEmpty(): Boolean = start >= endExclusive\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 [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 * Creates a range from this [Comparable] value to the specified [that] value.\n *\n * This value needs to be smaller than or equal to [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 * Represents a range of [Comparable] values.\n */\nprivate open class ComparableOpenEndRange>(\n override val start: T,\n override val endExclusive: T\n) : OpenEndRange {\n\n override fun equals(other: Any?): Boolean {\n return other is ComparableOpenEndRange<*> && (isEmpty() && other.isEmpty() ||\n start == other.start && endExclusive == other.endExclusive)\n }\n\n override fun hashCode(): Int {\n return if (isEmpty()) -1 else 31 * start.hashCode() + endExclusive.hashCode()\n }\n\n override fun toString(): String = \"$start..<$endExclusive\"\n}\n\n/**\n * Creates an open-ended 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 */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun > T.rangeUntil(that: T): OpenEndRange = ComparableOpenEndRange(this, that)\n\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/**\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 * 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 * An open-ended range of values of type `Double`.\n *\n * Numbers are compared with the ends of this range according to IEEE-754.\n */\nprivate class OpenEndDoubleRange(\n start: Double,\n endExclusive: Double\n) : OpenEndRange {\n private val _start = start\n private val _endExclusive = endExclusive\n override val start: Double get() = _start\n override val endExclusive: Double get() = _endExclusive\n\n private fun lessThanOrEquals(a: Double, b: Double): Boolean = a <= b\n\n override fun contains(value: Double): Boolean = value >= _start && value < _endExclusive\n override fun isEmpty(): Boolean = !(_start < _endExclusive)\n\n override fun equals(other: Any?): Boolean {\n return other is OpenEndDoubleRange && (isEmpty() && other.isEmpty() ||\n _start == other._start && _endExclusive == other._endExclusive)\n }\n\n override fun hashCode(): Int {\n return if (isEmpty()) -1 else 31 * _start.hashCode() + _endExclusive.hashCode()\n }\n\n override fun toString(): String = \"$_start..<$_endExclusive\"\n}\n\n/**\n * Creates an open-ended 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 */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun Double.rangeUntil(that: Double): OpenEndRange = OpenEndDoubleRange(this, that)\n\n\n/**\n * A closed range of values of type `Float`.\n *\n * Numbers are compared with the ends of this range according to IEEE-754.\n */\nprivate class ClosedFloatRange(\n start: Float,\n endInclusive: Float\n) : ClosedFloatingPointRange {\n private val _start = start\n private val _endInclusive = endInclusive\n override val start: Float get() = _start\n override val endInclusive: Float get() = _endInclusive\n\n override fun lessThanOrEquals(a: Float, b: Float): Boolean = a <= b\n\n override fun contains(value: Float): Boolean = value >= _start && value <= _endInclusive\n override fun isEmpty(): Boolean = !(_start <= _endInclusive)\n\n override fun equals(other: Any?): Boolean {\n return other is ClosedFloatRange && (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 * Creates a range from this [Float] 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.rangeFromFloat\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Float.rangeTo(that: Float): ClosedFloatingPointRange = ClosedFloatRange(this, that)\n\n\n/**\n * An open-ended range of values of type `Float`.\n *\n * Numbers are compared with the ends of this range according to IEEE-754.\n */\nprivate class OpenEndFloatRange(\n start: Float,\n endExclusive: Float\n) : OpenEndRange {\n private val _start = start\n private val _endExclusive = endExclusive\n override val start: Float get() = _start\n override val endExclusive: Float get() = _endExclusive\n\n private fun lessThanOrEquals(a: Float, b: Float): Boolean = a <= b\n\n override fun contains(value: Float): Boolean = value >= _start && value < _endExclusive\n override fun isEmpty(): Boolean = !(_start < _endExclusive)\n\n override fun equals(other: Any?): Boolean {\n return other is OpenEndFloatRange && (isEmpty() && other.isEmpty() ||\n _start == other._start && _endExclusive == other._endExclusive)\n }\n\n override fun hashCode(): Int {\n return if (isEmpty()) -1 else 31 * _start.hashCode() + _endExclusive.hashCode()\n }\n\n override fun toString(): String = \"$_start..<$_endExclusive\"\n}\n\n/**\n * Creates an open-ended range from this [Float] value to the specified [that] value.\n *\n * Numbers are compared with the ends of this range according to IEEE-754.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun Float.rangeUntil(that: Float): OpenEndRange = OpenEndFloatRange(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 : ClosedRange, R : Iterable =\n element != null && contains(element)\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.9\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline operator fun R.contains(element: T?): Boolean where T : Any, R : OpenEndRange, R : Iterable =\n element != null && contains(element)\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\n@file:kotlin.jvm.JvmName(\"KClasses\")\n@file:Suppress(\"UNCHECKED_CAST\")\n\npackage kotlin.reflect\n\nimport kotlin.internal.LowPriorityInOverloadResolution\n\n/**\n * Casts the given [value] to the class represented by this [KClass] object.\n * Throws an exception if the value is `null` or if it is not an instance of this class.\n *\n * This is an experimental function that behaves as a similar function from kotlin.reflect.full on JVM.\n *\n * @see [KClass.isInstance]\n * @see [KClass.safeCast]\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@LowPriorityInOverloadResolution\nfun KClass.cast(value: Any?): T {\n if (!isInstance(value)) throw ClassCastException(\"Value cannot be cast to $qualifiedOrSimpleName\")\n return value as T\n}\n\n// TODO: replace with qualifiedName when it is fully supported in K/JS\ninternal expect val KClass<*>.qualifiedOrSimpleName: String?\n\n/**\n * Casts the given [value] to the class represented by this [KClass] object.\n * Returns `null` if the value is `null` or if it is not an instance of this class.\n *\n * This is an experimental function that behaves as a similar function from kotlin.reflect.full on JVM.\n *\n * @see [KClass.isInstance]\n * @see [KClass.cast]\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@LowPriorityInOverloadResolution\nfun KClass.safeCast(value: Any?): T? {\n return if (isInstance(value)) value as T else null\n}\n","/*\n * Copyright 2010-2020 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\nimport kotlin.jvm.JvmField\nimport kotlin.jvm.JvmStatic\n\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\n init {\n require((variance == null) == (type == null)) {\n if (variance == null)\n \"Star projection must have no type specified.\"\n else\n \"The projection variance $variance requires type to be specified.\"\n }\n }\n\n override fun toString(): String = when (variance) {\n null -> \"*\"\n KVariance.INVARIANT -> type.toString()\n KVariance.IN -> \"in $type\"\n KVariance.OUT -> \"out $type\"\n }\n\n public companion object {\n // provided for compiler access\n @JvmField\n @PublishedApi\n internal val star: KTypeProjection = KTypeProjection(null, null)\n\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 get() = star\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 @JvmStatic\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 @JvmStatic\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 @JvmStatic\n public fun covariant(type: KType): KTypeProjection =\n KTypeProjection(KVariance.OUT, type)\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 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 * 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 * Note that on JVM, the created type has no annotations ([KType.annotations] returns an empty list)\n * even if the type in the source code is annotated. Support for type annotations might be added in a future version.\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun typeOf(): KType =\n throw UnsupportedOperationException(\"This function is implemented as an intrinsic on all supported platforms.\")\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 * An object to which char sequences and values can be appended.\n */\nexpect interface Appendable {\n /**\n * Appends the specified character [value] to this Appendable and returns this instance.\n *\n * @param value the character to append.\n */\n fun append(value: Char): Appendable\n\n /**\n * Appends the specified character sequence [value] to this Appendable and returns this instance.\n *\n * @param value the character sequence to append. If [value] is `null`, then the four characters `\"null\"` are appended to this Appendable.\n */\n fun append(value: CharSequence?): Appendable\n\n /**\n * Appends a subsequence of the specified character sequence [value] to this Appendable and returns this instance.\n *\n * @param value the character sequence from which a subsequence is appended. If [value] is `null`,\n * then characters are appended as if [value] contained the four characters `\"null\"`.\n * @param startIndex the beginning (inclusive) of the subsequence to append.\n * @param endIndex the end (exclusive) of the subsequence to append.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.\n */\n fun append(value: CharSequence?, startIndex: Int, endIndex: Int): Appendable\n}\n\n/**\n * Appends a subsequence of the specified character sequence [value] to this Appendable and returns this instance.\n *\n * @param value the character sequence from which a subsequence is appended.\n * @param startIndex the beginning (inclusive) of the subsequence to append.\n * @param endIndex the end (exclusive) of the subsequence to append.\n *\n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of the [value] character sequence indices or when `startIndex > endIndex`.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun T.appendRange(value: CharSequence, startIndex: Int, endIndex: Int): T {\n @Suppress(\"UNCHECKED_CAST\")\n return append(value, startIndex, endIndex) as T\n}\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/** Appends a line feed character (`\\n`) to this Appendable. */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Appendable.appendLine(): Appendable = append('\\n')\n\n/** Appends value to the given Appendable and a line feed character (`\\n`) after it. */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Appendable.appendLine(value: CharSequence?): Appendable = append(value).appendLine()\n\n/** Appends value to the given Appendable and a line feed character (`\\n`) after it. */\n@SinceKotlin(\"1.4\")\n@kotlin.internal.InlineOnly\npublic inline fun Appendable.appendLine(value: Char): Appendable = append(value).appendLine()\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-2023 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.internal.InlineOnly\n\n/**\n * Represents hexadecimal format options.\n *\n * To create a new [HexFormat] use `HexFormat` function.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\npublic class HexFormat internal constructor(\n /**\n * Specifies whether upper case hexadecimal digits `0-9`, `A-F` should be used for formatting.\n * If `false`, lower case hexadecimal digits `0-9`, `a-f` will be used.\n *\n * Affects both `ByteArray` and numeric value formatting.\n */\n val upperCase: Boolean,\n /**\n * Specifies hexadecimal format used for formatting and parsing `ByteArray`.\n */\n val bytes: BytesHexFormat,\n /**\n * Specifies hexadecimal format used for formatting and parsing a numeric value.\n */\n val number: NumberHexFormat\n) {\n\n override fun toString(): String = buildString {\n append(\"HexFormat(\").appendLine()\n append(\" upperCase = \").append(upperCase).appendLine(\",\")\n append(\" bytes = BytesHexFormat(\").appendLine()\n bytes.appendOptionsTo(this, indent = \" \").appendLine()\n append(\" ),\").appendLine()\n append(\" number = NumberHexFormat(\").appendLine()\n number.appendOptionsTo(this, indent = \" \").appendLine()\n append(\" )\").appendLine()\n append(\")\")\n }\n\n /**\n * Represents hexadecimal format options for formatting and parsing `ByteArray`.\n *\n * When formatting one can assume that bytes are firstly separated using LF character (`'\\n'`) into lines\n * with [bytesPerLine] bytes in each line. The last line may have fewer bytes.\n * Then each line is separated into groups using [groupSeparator] with [bytesPerGroup] bytes in each group,\n * except the last group in the line, which may have fewer bytes.\n * All bytes in a group are separated using [byteSeparator].\n * Each byte is converted to its two-digit hexadecimal representation,\n * immediately preceded by [bytePrefix] and immediately succeeded by [byteSuffix].\n *\n * When parsing the input string is required to be in the format described above.\n * However, any of the char sequences CRLF, LF and CR is considered a valid line separator,\n * and parsing is performed in case-insensitive manner.\n *\n * See [BytesHexFormat.Builder] to find out how the options are configured,\n * and what is the default value of each option.\n */\n public class BytesHexFormat internal constructor(\n /** The maximum number of bytes per line. */\n val bytesPerLine: Int,\n\n /** The maximum number of bytes per group. */\n val bytesPerGroup: Int,\n /** The string used to separate adjacent groups in a line. */\n val groupSeparator: String,\n\n /** The string used to separate adjacent bytes in a group. */\n val byteSeparator: String,\n /** The string that immediately precedes two-digit hexadecimal representation of each byte. */\n val bytePrefix: String,\n /** The string that immediately succeeds two-digit hexadecimal representation of each byte. */\n val byteSuffix: String\n ) {\n\n override fun toString(): String = buildString {\n append(\"BytesHexFormat(\").appendLine()\n appendOptionsTo(this, indent = \" \").appendLine()\n append(\")\")\n }\n\n internal fun appendOptionsTo(sb: StringBuilder, indent: String): StringBuilder {\n sb.append(indent).append(\"bytesPerLine = \").append(bytesPerLine).appendLine(\",\")\n sb.append(indent).append(\"bytesPerGroup = \").append(bytesPerGroup).appendLine(\",\")\n sb.append(indent).append(\"groupSeparator = \\\"\").append(groupSeparator).appendLine(\"\\\",\")\n sb.append(indent).append(\"byteSeparator = \\\"\").append(byteSeparator).appendLine(\"\\\",\")\n sb.append(indent).append(\"bytePrefix = \\\"\").append(bytePrefix).appendLine(\"\\\",\")\n sb.append(indent).append(\"byteSuffix = \\\"\").append(byteSuffix).append(\"\\\"\")\n return sb\n }\n\n /**\n * A context for building a [BytesHexFormat]. Provides API for configuring format options.\n */\n class Builder internal constructor() {\n /**\n * Defines [BytesHexFormat.bytesPerLine] of the format being built, [Int.MAX_VALUE] by default.\n *\n * The value must be positive.\n *\n * @throws IllegalArgumentException if a non-positive value is assigned to this property.\n */\n var bytesPerLine: Int = Default.bytesPerLine\n set(value) {\n if (value <= 0)\n throw IllegalArgumentException(\"Non-positive values are prohibited for bytesPerLine, but was $value\")\n field = value\n }\n\n /**\n * Defines [BytesHexFormat.bytesPerGroup] of the format being built, [Int.MAX_VALUE] by default.\n *\n * The value must be positive.\n *\n * @throws IllegalArgumentException if a non-positive value is assigned to this property.\n */\n var bytesPerGroup: Int = Default.bytesPerGroup\n set(value) {\n if (value <= 0)\n throw IllegalArgumentException(\"Non-positive values are prohibited for bytesPerGroup, but was $value\")\n field = value\n }\n\n /** Defines [BytesHexFormat.groupSeparator] of the format being built, two space characters (`\" \"`) by default. */\n var groupSeparator: String = Default.groupSeparator\n\n /**\n * Defines [BytesHexFormat.byteSeparator] of the format being built, empty string by default.\n *\n * The string must not contain LF and CR characters.\n *\n * @throws IllegalArgumentException if a string containing LF or CR character is assigned to this property.\n */\n var byteSeparator: String = Default.byteSeparator\n set(value) {\n if (value.contains('\\n') || value.contains('\\r'))\n throw IllegalArgumentException(\"LF and CR characters are prohibited in byteSeparator, but was $value\")\n field = value\n }\n\n /**\n * Defines [BytesHexFormat.bytePrefix] of the format being built, empty string by default.\n *\n * The string must not contain LF and CR characters.\n *\n * @throws IllegalArgumentException if a string containing LF or CR character is assigned to this property.\n */\n var bytePrefix: String = Default.bytePrefix\n set(value) {\n if (value.contains('\\n') || value.contains('\\r'))\n throw IllegalArgumentException(\"LF and CR characters are prohibited in bytePrefix, but was $value\")\n field = value\n }\n\n /**\n * Defines [BytesHexFormat.byteSuffix] of the format being built, empty string by default.\n *\n * The string must not contain LF and CR characters.\n *\n * @throws IllegalArgumentException if a string containing LF or CR character is assigned to this property.\n */\n var byteSuffix: String = Default.byteSuffix\n set(value) {\n if (value.contains('\\n') || value.contains('\\r'))\n throw IllegalArgumentException(\"LF and CR characters are prohibited in byteSuffix, but was $value\")\n field = value\n }\n\n internal fun build(): BytesHexFormat {\n return BytesHexFormat(bytesPerLine, bytesPerGroup, groupSeparator, byteSeparator, bytePrefix, byteSuffix)\n }\n }\n\n internal companion object {\n internal val Default = BytesHexFormat(\n bytesPerLine = Int.MAX_VALUE,\n bytesPerGroup = Int.MAX_VALUE,\n groupSeparator = \" \",\n byteSeparator = \"\",\n bytePrefix = \"\",\n byteSuffix = \"\"\n )\n }\n }\n\n /**\n * Represents hexadecimal format options for formatting and parsing a numeric value.\n *\n * The formatting result consist of [prefix] string, hexadecimal representation of the value being formatted, and [suffix] string.\n * Hexadecimal representation of a value is calculated by mapping each four-bit chunk\n * of its binary representation to the corresponding hexadecimal digit, starting with the most significant bits.\n * [upperCase] determines whether upper case `0-9`, `A-F` or lower case `0-9`, `a-f` hexadecimal digits are used.\n * If [removeLeadingZeros] it `true`, leading zeros in the hexadecimal representation are removed.\n *\n * For example, the binary representation of the `Byte` value `58` is the 8-bit long `00111010`,\n * which converts to a hexadecimal representation of `3a` or `3A` depending on [upperCase].\n * Whereas, the binary representation of the `Int` value `58` is the 32-bit long `00000000000000000000000000111010`,\n * which converts to a hexadecimal representation of `0000003a` or `0000003A` depending on [upperCase].\n * If [removeLeadingZeros] it `true`, leading zeros in `0000003a` are removed, resulting `3a`.\n *\n * To convert a value to hexadecimal string of a particular length,\n * first convert the value to a type with the corresponding bit size.\n * For example, to convert an `Int` value to 4-digit hexadecimal string,\n * convert the value `toShort()` before hexadecimal formatting.\n * To convert it to hexadecimal string of at most 4 digits\n * without leading zeros, set [removeLeadingZeros] to `true` in addition.\n *\n * Parsing requires [prefix] and [suffix] to be present in the input string,\n * and the amount of hexadecimal digits to be at least one and at most the value bit size divided by four.\n * Parsing is performed in case-insensitive manner, and [removeLeadingZeros] is ignored as well.\n *\n * See [NumberHexFormat.Builder] to find out how the options are configured,\n * and what is the default value of each option.\n */\n public class NumberHexFormat internal constructor(\n /** The string that immediately precedes hexadecimal representation of a numeric value. */\n val prefix: String,\n /** The string that immediately succeeds hexadecimal representation of a numeric value. */\n val suffix: String,\n /** Specifies whether to remove leading zeros in the hexadecimal representation of a numeric value. */\n val removeLeadingZeros: Boolean\n ) {\n\n override fun toString(): String = buildString {\n append(\"NumberHexFormat(\").appendLine()\n appendOptionsTo(this, indent = \" \").appendLine()\n append(\")\")\n }\n\n internal fun appendOptionsTo(sb: StringBuilder, indent: String): StringBuilder {\n sb.append(indent).append(\"prefix = \\\"\").append(prefix).appendLine(\"\\\",\")\n sb.append(indent).append(\"suffix = \\\"\").append(suffix).appendLine(\"\\\",\")\n sb.append(indent).append(\"removeLeadingZeros = \").append(removeLeadingZeros)\n return sb\n }\n\n /**\n * A context for building a [NumberHexFormat]. Provides API for configuring format options.\n */\n class Builder internal constructor() {\n /**\n * Defines [NumberHexFormat.prefix] of the format being built, empty string by default.\n *\n * The string must not contain LF and CR characters.\n *\n * @throws IllegalArgumentException if a string containing LF or CR character is assigned to this property.\n */\n var prefix: String = Default.prefix\n set(value) {\n if (value.contains('\\n') || value.contains('\\r'))\n throw IllegalArgumentException(\"LF and CR characters are prohibited in prefix, but was $value\")\n field = value\n }\n\n /**\n * Defines [NumberHexFormat.suffix] of the format being built, empty string by default.\n *\n * The string must not contain LF and CR characters.\n *\n * @throws IllegalArgumentException if a string containing LF or CR character is assigned to this property.\n */\n var suffix: String = Default.suffix\n set(value) {\n if (value.contains('\\n') || value.contains('\\r'))\n throw IllegalArgumentException(\"LF and CR characters are prohibited in suffix, but was $value\")\n field = value\n }\n\n /** Defines [NumberHexFormat.removeLeadingZeros] of the format being built, empty string by default. */\n var removeLeadingZeros: Boolean = Default.removeLeadingZeros\n\n internal fun build(): NumberHexFormat {\n return NumberHexFormat(prefix, suffix, removeLeadingZeros)\n }\n }\n\n internal companion object {\n internal val Default = NumberHexFormat(\n prefix = \"\",\n suffix = \"\",\n removeLeadingZeros = false\n )\n }\n }\n\n\n /**\n * A context for building a [HexFormat]. Provides API for configuring format options.\n */\n public class Builder @PublishedApi internal constructor() {\n /** Defines [HexFormat.upperCase] of the format being built, `false` by default. */\n var upperCase: Boolean = Default.upperCase\n\n /**\n * Defines [HexFormat.bytes] of the format being built.\n *\n * See [BytesHexFormat.Builder] for default values of the options.\n */\n val bytes: BytesHexFormat.Builder\n get() {\n if (_bytes == null) {\n _bytes = BytesHexFormat.Builder()\n }\n return _bytes!!\n }\n\n private var _bytes: BytesHexFormat.Builder? = null\n\n /**\n * Defines [HexFormat.number] of the format being built.\n *\n * See [NumberHexFormat.Builder] for default values of the options.\n */\n val number: NumberHexFormat.Builder\n get() {\n if (_number == null) {\n _number = NumberHexFormat.Builder()\n }\n return _number!!\n }\n\n private var _number: NumberHexFormat.Builder? = null\n\n /**\n * Provides a scope for configuring the [HexFormat.bytes] format options.\n *\n * See [BytesHexFormat.Builder] for default values of the options.\n */\n @InlineOnly\n inline fun bytes(builderAction: BytesHexFormat.Builder.() -> Unit) {\n bytes.builderAction()\n }\n\n /**\n * Provides a scope for configuring the [HexFormat.number] format options.\n *\n * See [NumberHexFormat.Builder] for default values of the options.\n */\n @InlineOnly\n inline fun number(builderAction: NumberHexFormat.Builder.() -> Unit) {\n number.builderAction()\n }\n\n @PublishedApi\n internal fun build(): HexFormat {\n return HexFormat(\n upperCase,\n _bytes?.build() ?: BytesHexFormat.Default,\n _number?.build() ?: NumberHexFormat.Default\n )\n }\n }\n\n\n companion object {\n /**\n * The default hexadecimal format options.\n *\n * Uses lower case hexadecimal digits `0-9`, `a-f` when formatting\n * both `ByteArray` and numeric values. That is [upperCase] is `false`.\n *\n * No line separator, group separator, byte separator, byte prefix or byte suffix is used\n * when formatting or parsing `ByteArray`. That is:\n * * [BytesHexFormat.bytesPerLine] is `Int.MAX_VALUE`.\n * * [BytesHexFormat.bytesPerGroup] is `Int.MAX_VALUE`.\n * * [BytesHexFormat.byteSeparator], [BytesHexFormat.bytePrefix] and [BytesHexFormat.byteSuffix] are empty strings.\n *\n * No prefix or suffix is used, and no leading zeros in hexadecimal representation are removed\n * when formatting or parsing a numeric value. That is:\n * * [NumberHexFormat.prefix] and [NumberHexFormat.suffix] are empty strings.\n * * [NumberHexFormat.removeLeadingZeros] is `false`.\n */\n public val Default: HexFormat = HexFormat(\n upperCase = false,\n bytes = BytesHexFormat.Default,\n number = NumberHexFormat.Default,\n )\n\n /**\n * Uses upper case hexadecimal digits `0-9`, `A-F` when formatting\n * both `ByteArray` and numeric values. That is [upperCase] is `true`.\n *\n * The same as [Default] format in other aspects.\n */\n public val UpperCase: HexFormat = HexFormat(\n upperCase = true,\n bytes = BytesHexFormat.Default,\n number = NumberHexFormat.Default,\n )\n }\n}\n\n/**\n * Builds a new [HexFormat] by configuring its format options using the specified [builderAction],\n * and returns the resulting format.\n *\n * The builder passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun HexFormat(builderAction: HexFormat.Builder.() -> Unit): HexFormat {\n return HexFormat.Builder().apply(builderAction).build()\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 * 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 */\n@kotlin.internal.IntrinsicConstEvaluation\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 */\n@kotlin.internal.IntrinsicConstEvaluation\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 .minOrNull() ?: 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 @SinceKotlin(\"1.6\")\n public const val leftGuillemet: Char = '\\u00AB'\n /** The character » */\n @SinceKotlin(\"1.6\")\n public const val rightGuillemet: 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 /** The character « */\n @Deprecated(\"This constant has a typo in the name. Use leftGuillemet instead.\", ReplaceWith(\"Typography.leftGuillemet\"))\n @DeprecatedSinceKotlin(\"1.6\")\n public const val leftGuillemete: Char = '\\u00AB'\n\n /** The character » */\n @Deprecated(\"This constant has a typo in the name. Use rightGuillemet instead.\", ReplaceWith(\"Typography.rightGuillemet\"))\n @DeprecatedSinceKotlin(\"1.6\")\n public const val rightGuillemete: Char = '\\u00BB'\n}","/*\n * Copyright 2010-2023 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.internal.InlineOnly\n\n// -------------------------- format and parse UByteArray --------------------------\n\n/**\n * Formats bytes in this array using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.BytesHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if the result length is more than [String] maximum capacity.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@ExperimentalUnsignedTypes\n@InlineOnly\npublic inline fun UByteArray.toHexString(format: HexFormat = HexFormat.Default): String = storage.toHexString(format)\n\n/**\n * Formats bytes in this array using the specified [HexFormat].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.BytesHexFormat] affect formatting.\n *\n * @param startIndex the beginning (inclusive) of the subrange to format, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to format, size of this array by default.\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n *\n * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this array indices.\n * @throws IllegalArgumentException when `startIndex > endIndex`.\n * @throws IllegalArgumentException if the result length is more than [String] maximum capacity.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@ExperimentalUnsignedTypes\n@InlineOnly\npublic inline fun UByteArray.toHexString(\n startIndex: Int = 0,\n endIndex: Int = size,\n format: HexFormat = HexFormat.Default\n): String = storage.toHexString(startIndex, endIndex, format)\n\n/**\n * Parses bytes from this string using the specified [HexFormat].\n *\n * Note that only [HexFormat.BytesHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n * Also, any of the char sequences CRLF, LF and CR is considered a valid line separator.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@ExperimentalUnsignedTypes\n@InlineOnly\npublic inline fun String.hexToUByteArray(format: HexFormat = HexFormat.Default): UByteArray =\n hexToByteArray(format).asUByteArray()\n\n///**\n// * Parses bytes from this string using the specified [HexFormat].\n// *\n// * Note that only [HexFormat.BytesHexFormat] affects parsing,\n// * and parsing is performed in case-insensitive manner.\n// * Also, any of the char sequences CRLF, LF and CR is considered a valid line separator.\n// *\n// * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n// * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n// * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n// *\n// * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n// * @throws IllegalArgumentException when `startIndex > endIndex`.\n// * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n// */\n//@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\n//@ExperimentalUnsignedTypes\n//@InlineOnly\n//public inline fun String.hexToUByteArray(\n// startIndex: Int = 0,\n// endIndex: Int = length,\n// format: HexFormat = HexFormat.Default\n//): UByteArray = hexToByteArray(startIndex, endIndex, format).asUByteArray()\n\n// -------------------------- format and parse UByte --------------------------\n\n/**\n * Formats this `UByte` value using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.NumberHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun UByte.toHexString(format: HexFormat = HexFormat.Default): String = data.toHexString(format)\n\n/**\n * Parses an `UByte` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun String.hexToUByte(format: HexFormat = HexFormat.Default): UByte = hexToByte(format).toUByte()\n\n///**\n// * Parses an `UByte` value from this string using the specified [format].\n// *\n// * Note that only [HexFormat.NumberHexFormat] affects parsing,\n// * and parsing is performed in case-insensitive manner.\n// *\n// * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n// * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n// * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n// *\n// * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n// * @throws IllegalArgumentException when `startIndex > endIndex`.\n// * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n// */\n//@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\n//@InlineOnly\n//public inline fun String.hexToUByte(startIndex: Int = 0, endIndex: Int = length, format: HexFormat = HexFormat.Default): UByte =\n// hexToByte(startIndex, endIndex, format).toUByte()\n\n// -------------------------- format and parse UShort --------------------------\n\n/**\n * Formats this `UShort` value using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.NumberHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun UShort.toHexString(format: HexFormat = HexFormat.Default): String = data.toHexString(format)\n\n/**\n * Parses an `UShort` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun String.hexToUShort(format: HexFormat = HexFormat.Default): UShort = hexToShort(format).toUShort()\n\n///**\n// * Parses an `UShort` value from this string using the specified [format].\n// *\n// * Note that only [HexFormat.NumberHexFormat] affects parsing,\n// * and parsing is performed in case-insensitive manner.\n// *\n// * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n// * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n// * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n// *\n// * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n// * @throws IllegalArgumentException when `startIndex > endIndex`.\n// * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n// */\n//@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\n//@InlineOnly\n//public inline fun String.hexToUShort(startIndex: Int = 0, endIndex: Int = length, format: HexFormat = HexFormat.Default): UShort =\n// hexToShort(startIndex, endIndex, format).toUShort()\n\n// -------------------------- format and parse UInt --------------------------\n\n/**\n * Formats this `UInt` value using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.NumberHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun UInt.toHexString(format: HexFormat = HexFormat.Default): String = data.toHexString(format)\n\n/**\n * Parses an `UInt` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun String.hexToUInt(format: HexFormat = HexFormat.Default): UInt = hexToInt(format).toUInt()\n\n///**\n// * Parses an `UInt` value from this string using the specified [format].\n// *\n// * Note that only [HexFormat.NumberHexFormat] affects parsing,\n// * and parsing is performed in case-insensitive manner.\n// *\n// * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n// * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n// * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n// *\n// * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n// * @throws IllegalArgumentException when `startIndex > endIndex`.\n// * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n// */\n//@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\n//@InlineOnly\n//public inline fun String.hexToUInt(startIndex: Int = 0, endIndex: Int = length, format: HexFormat = HexFormat.Default): UInt =\n// hexToInt(startIndex, endIndex, format).toUInt()\n\n// -------------------------- format and parse ULong --------------------------\n\n/**\n * Formats this `ULong` value using the specified [format].\n *\n * Note that only [HexFormat.upperCase] and [HexFormat.NumberHexFormat] affect formatting.\n *\n * @param format the [HexFormat] to use for formatting, [HexFormat.Default] by default.\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun ULong.toHexString(format: HexFormat = HexFormat.Default): String = data.toHexString(format)\n\n/**\n * Parses an `ULong` value from this string using the specified [format].\n *\n * Note that only [HexFormat.NumberHexFormat] affects parsing,\n * and parsing is performed in case-insensitive manner.\n *\n * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n *\n * @throws IllegalArgumentException if this string does not comply with the specified [format].\n */\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.9\")\n@InlineOnly\npublic inline fun String.hexToULong(format: HexFormat = HexFormat.Default): ULong = hexToLong(format).toULong()\n\n///**\n// * Parses an `ULong` value from this string using the specified [format].\n// *\n// * Note that only [HexFormat.NumberHexFormat] affects parsing,\n// * and parsing is performed in case-insensitive manner.\n// *\n// * @param startIndex the beginning (inclusive) of the substring to parse, 0 by default.\n// * @param endIndex the end (exclusive) of the substring to parse, length of this string by default.\n// * @param format the [HexFormat] to use for parsing, [HexFormat.Default] by default.\n// *\n// * @throws IndexOutOfBoundsException when [startIndex] or [endIndex] is out of range of this string indices.\n// * @throws IllegalArgumentException when `startIndex > endIndex`.\n// * @throws IllegalArgumentException if the substring does not comply with the specified [format].\n// */\n//@ExperimentalStdlibApi\n//@SinceKotlin(\"1.9\")\n//@InlineOnly\n//public inline fun String.hexToULong(startIndex: Int = 0, endIndex: Int = length, format: HexFormat = HexFormat.Default): ULong =\n// hexToLong(startIndex, endIndex, format).toULong()\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 this match group collection doesn't support getting match groups by name,\n * for example, when it's not supported by 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-2021 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(\"DurationUnitKt\")\n\npackage kotlin.time\n\n\n/**\n * The list of possible time measurement units, in which a duration can be expressed.\n *\n * The smallest time unit is [NANOSECONDS] and the largest is [DAYS], which corresponds to exactly 24 [HOURS].\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalTime::class)\npublic expect enum class DurationUnit {\n /**\n * Time unit representing one nanosecond, which is 1/1000 of a microsecond.\n */\n NANOSECONDS,\n /**\n * Time unit representing one microsecond, which is 1/1000 of a millisecond.\n */\n MICROSECONDS,\n /**\n * Time unit representing one millisecond, which is 1/1000 of a second.\n */\n MILLISECONDS,\n /**\n * Time unit representing one second.\n */\n SECONDS,\n /**\n * Time unit representing one minute.\n */\n MINUTES,\n /**\n * Time unit representing one hour.\n */\n HOURS,\n /**\n * Time unit representing one day, which is always equal to 24 hours.\n */\n DAYS;\n}\n\n/** Converts the given time duration [value] expressed in the specified [sourceUnit] into the specified [targetUnit]. */\n@SinceKotlin(\"1.3\")\ninternal expect fun convertDurationUnit(value: Double, sourceUnit: DurationUnit, targetUnit: DurationUnit): Double\n\n// overflown result is unspecified\n@SinceKotlin(\"1.5\")\ninternal expect fun convertDurationUnitOverflow(value: Long, sourceUnit: DurationUnit, targetUnit: DurationUnit): Long\n\n// overflown result is coerced in the Long range boundaries\n@SinceKotlin(\"1.5\")\ninternal expect fun convertDurationUnit(value: Long, sourceUnit: DurationUnit, targetUnit: DurationUnit): Long\n\n\n@SinceKotlin(\"1.3\")\n@Suppress(\"REDUNDANT_ELSE_IN_WHEN\")\ninternal fun DurationUnit.shortName(): String = when (this) {\n DurationUnit.NANOSECONDS -> \"ns\"\n DurationUnit.MICROSECONDS -> \"us\"\n DurationUnit.MILLISECONDS -> \"ms\"\n DurationUnit.SECONDS -> \"s\"\n DurationUnit.MINUTES -> \"m\"\n DurationUnit.HOURS -> \"h\"\n DurationUnit.DAYS -> \"d\"\n else -> error(\"Unknown unit: $this\")\n}\n\n@SinceKotlin(\"1.5\")\ninternal fun durationUnitByShortName(shortName: String): DurationUnit = when (shortName) {\n \"ns\" -> DurationUnit.NANOSECONDS\n \"us\" -> DurationUnit.MICROSECONDS\n \"ms\" -> DurationUnit.MILLISECONDS\n \"s\" -> DurationUnit.SECONDS\n \"m\" -> DurationUnit.MINUTES\n \"h\" -> DurationUnit.HOURS\n \"d\" -> DurationUnit.DAYS\n else -> throw IllegalArgumentException(\"Unknown duration unit short name: $shortName\")\n}\n\n@SinceKotlin(\"1.5\")\ninternal fun durationUnitByIsoChar(isoChar: Char, isTimeComponent: Boolean): DurationUnit =\n when {\n !isTimeComponent -> {\n when (isoChar) {\n 'D' -> DurationUnit.DAYS\n else -> throw IllegalArgumentException(\"Invalid or unsupported duration ISO non-time unit: $isoChar\")\n }\n }\n else -> {\n when (isoChar) {\n 'H' -> DurationUnit.HOURS\n 'M' -> DurationUnit.MINUTES\n 'S' -> DurationUnit.SECONDS\n else -> throw IllegalArgumentException(\"Invalid duration ISO time unit: $isoChar\")\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.time\n\nimport kotlin.annotation.AnnotationTarget.*\n\n/**\n * This annotation marks the experimental preview of the standard library API for measuring time and working with durations.\n *\n * > Note that this API is in a preview state and has a very high chance of being changed in the future.\n * Do not use it if you develop a library since your library will become binary incompatible\n * with the future versions of the standard library.\n *\n * Any usage of a declaration annotated with `@ExperimentalTime` must be accepted either by\n * annotating that usage with the [OptIn] annotation, e.g. `@OptIn(ExperimentalTime::class)`,\n * or by using the compiler argument `-opt-in=kotlin.time.ExperimentalTime`.\n */\n@RequiresOptIn(level = RequiresOptIn.Level.ERROR)\n@MustBeDocumented\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@SinceKotlin(\"1.3\")\npublic annotation class ExperimentalTime\n","/*\n * Copyright 2010-2022 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.time\n\nimport kotlin.jvm.JvmInline\n\n/**\n * A source of time for measuring time intervals.\n *\n * The only operation provided by the time source is [markNow]. It returns a [TimeMark], which can be used to query the elapsed time later.\n *\n * @see [measureTime]\n * @see [measureTimedValue]\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic interface TimeSource {\n /**\n * Marks a point in time on this time source.\n *\n * The returned [TimeMark] instance encapsulates the captured time point and allows querying\n * the duration of time interval [elapsed][TimeMark.elapsedNow] from that point.\n */\n public fun markNow(): TimeMark\n\n /**\n * A [TimeSource] that returns [time marks][ComparableTimeMark] that can be compared for difference with each other.\n */\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalTime::class)\n public interface WithComparableMarks : TimeSource {\n override fun markNow(): ComparableTimeMark\n }\n\n /**\n * The most precise time source available in the platform.\n *\n * This time source returns its readings from a source of monotonic time when it is available in a target platform,\n * and resorts to a non-monotonic time source otherwise.\n *\n * The function [markNow] of this time source returns the specialized [ValueTimeMark] that is an inline value class\n * wrapping a platform-dependent time reading value.\n */\n public object Monotonic : TimeSource.WithComparableMarks {\n override fun markNow(): ValueTimeMark = MonotonicTimeSource.markNow()\n override fun toString(): String = MonotonicTimeSource.toString()\n\n /**\n * A specialized [kotlin.time.TimeMark] returned by [TimeSource.Monotonic] time source.\n *\n * This time mark is implemented as an inline value class wrapping a platform-dependent\n * time reading value of the default monotonic time source, thus allowing to avoid additional boxing\n * of that value.\n *\n * The operations [plus] and [minus] are also specialized to return [ValueTimeMark] type.\n *\n * This time mark implements [ComparableTimeMark] and therefore is comparable with other time marks\n * obtained from the same [TimeSource.Monotonic] time source.\n */\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalTime::class)\n @JvmInline\n public value class ValueTimeMark internal constructor(internal val reading: ValueTimeMarkReading) : ComparableTimeMark {\n override fun elapsedNow(): Duration = MonotonicTimeSource.elapsedFrom(this)\n override fun plus(duration: Duration): ValueTimeMark = MonotonicTimeSource.adjustReading(this, duration)\n override fun minus(duration: Duration): ValueTimeMark = MonotonicTimeSource.adjustReading(this, -duration)\n override fun hasPassedNow(): Boolean = !elapsedNow().isNegative()\n override fun hasNotPassedNow(): Boolean = elapsedNow().isNegative()\n\n override fun minus(other: ComparableTimeMark): Duration {\n if (other !is ValueTimeMark)\n throw IllegalArgumentException(\"Subtracting or comparing time marks from different time sources is not possible: $this and $other\")\n return this.minus(other)\n }\n\n /**\n * Returns the duration elapsed between the [other] time mark obtained from the same [TimeSource.Monotonic] time source and `this` time mark.\n *\n * The returned duration can be infinite if the time marks are far away from each other and\n * the result doesn't fit into [Duration] type,\n * or if one time mark is infinitely distant, or if both `this` and [other] time marks\n * lie infinitely distant on the opposite sides of the time scale.\n *\n * Two infinitely distant time marks on the same side of the time scale are considered equal and\n * the duration between them is [Duration.ZERO].\n */\n public operator fun minus(other: ValueTimeMark): Duration = MonotonicTimeSource.differenceBetween(this, other)\n\n /**\n * Compares this time mark with the [other] time mark for order.\n *\n * - Returns zero if this time mark represents *the same moment* of time as the [other] time mark.\n * - Returns a negative number if this time mark is *earlier* than the [other] time mark.\n * - Returns a positive number if this time mark is *later* than the [other] time mark.\n */\n public operator fun compareTo(other: ValueTimeMark): Int =\n (this - other).compareTo(Duration.ZERO)\n }\n }\n\n public companion object {\n\n }\n}\n\n/** A platform-specific reading type that is wrapped by [TimeSource.Monotonic.ValueTimeMark] inline class. */\ninternal expect class ValueTimeMarkReading\n\n\n/**\n * Represents a time point notched on a particular [TimeSource]. Remains bound to the time source it was taken from\n * and allows querying for the duration of time elapsed from that point (see the function [elapsedNow]).\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic interface TimeMark {\n /**\n * Returns the amount of time passed from this mark measured with the time source from which this mark was taken.\n *\n * Note that the value returned by this function can change on subsequent invocations.\n *\n * @throws IllegalArgumentException an implementation may throw if calculating the elapsed time involves\n * adding a positive infinite duration to an infinitely distant past time mark or\n * a negative infinite duration to an infinitely distant future time mark.\n */\n public abstract fun elapsedNow(): Duration\n\n /**\n * Returns a time mark on the same time source that is ahead of this time mark by the specified [duration].\n *\n * The returned time mark is more _late_ when the [duration] is positive, and more _early_ when the [duration] is negative.\n *\n * If the time mark is adjusted too far in the past or in the future, it may saturate to an infinitely distant time mark.\n * In that case, [elapsedNow] will return an infinite duration elapsed from such infinitely distant mark.\n *\n * @throws IllegalArgumentException an implementation may throw if a positive infinite duration is added to an infinitely distant past time mark or\n * a negative infinite duration is added to an infinitely distant future time mark.\n */\n public operator fun plus(duration: Duration): TimeMark = AdjustedTimeMark(this, duration)\n\n /**\n * Returns a time mark on the same time source that is behind this time mark by the specified [duration].\n *\n * The returned time mark is more _early_ when the [duration] is positive, and more _late_ when the [duration] is negative.\n *\n * If the time mark is adjusted too far in the past or in the future, it may saturate to an infinitely distant time mark.\n * In that case, [elapsedNow] will return an infinite duration elapsed from such infinitely distant mark.\n *\n * @throws IllegalArgumentException an implementation may throw if a positive infinite duration is subtracted from an infinitely distant future time mark or\n * a negative infinite duration is subtracted from an infinitely distant past time mark.\n */\n public open operator fun minus(duration: Duration): TimeMark = plus(-duration)\n\n\n /**\n * Returns true if this time mark has passed according to the time source from which this mark was taken.\n *\n * Note that the value returned by this function can change on subsequent invocations.\n * If the time source is monotonic, it can change only from `false` to `true`, namely, when the time mark becomes behind the current point of the time source.\n */\n public fun hasPassedNow(): Boolean = !elapsedNow().isNegative()\n\n /**\n * Returns false if this time mark has not passed according to the time source from which this mark was taken.\n *\n * Note that the value returned by this function can change on subsequent invocations.\n * If the time source is monotonic, it can change only from `true` to `false`, namely, when the time mark becomes behind the current point of the time source.\n */\n public fun hasNotPassedNow(): Boolean = elapsedNow().isNegative()\n}\n\n/**\n * A [TimeMark] that can be compared for difference with other time marks obtained from the same [TimeSource.WithComparableMarks] time source.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic interface ComparableTimeMark : TimeMark, Comparable {\n public abstract override operator fun plus(duration: Duration): ComparableTimeMark\n public open override operator fun minus(duration: Duration): ComparableTimeMark = plus(-duration)\n\n /**\n * Returns the duration elapsed between the [other] time mark and `this` time mark.\n *\n * The returned duration can be infinite if the time marks are far away from each other and\n * the result doesn't fit into [Duration] type,\n * or if one time mark is infinitely distant, or if both `this` and [other] time marks\n * lie infinitely distant on the opposite sides of the time scale.\n *\n * Two infinitely distant time marks on the same side of the time scale are considered equal and\n * the duration between them is [Duration.ZERO].\n *\n * Note that the other time mark must be obtained from the same time source as this one.\n *\n * @throws IllegalArgumentException if time marks were obtained from different time sources.\n */\n public operator fun minus(other: ComparableTimeMark): Duration\n\n /**\n * Compares this time mark with the [other] time mark for order.\n *\n * - Returns zero if this time mark represents *the same moment* of time as the [other] time mark.\n * - Returns a negative number if this time mark is *earlier* than the [other] time mark.\n * - Returns a positive number if this time mark is *later* than the [other] time mark.\n *\n * Note that the other time mark must be obtained from the same time source as this one.\n *\n * @throws IllegalArgumentException if time marks were obtained from different time sources.\n */\n public override operator fun compareTo(other: ComparableTimeMark): Int =\n (this - other).compareTo(Duration.ZERO)\n\n /**\n * Returns `true` if two time marks from the same time source represent the same moment of time, and `false` otherwise,\n * including the situation when the time marks were obtained from different time sources.\n */\n override fun equals(other: Any?): Boolean\n override fun hashCode(): Int\n}\n\n\nprivate class AdjustedTimeMark(val mark: TimeMark, val adjustment: Duration) : TimeMark {\n override fun elapsedNow(): Duration = mark.elapsedNow() - adjustment\n\n override fun plus(duration: Duration): TimeMark = AdjustedTimeMark(mark, adjustment + duration)\n}\n","/*\n * Copyright 2010-2022 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.time\n\nimport kotlin.math.sign\n\n@SinceKotlin(\"1.3\")\ninternal expect object MonotonicTimeSource : TimeSource.WithComparableMarks {\n override fun markNow(): TimeSource.Monotonic.ValueTimeMark\n fun elapsedFrom(timeMark: TimeSource.Monotonic.ValueTimeMark): Duration\n fun differenceBetween(one: TimeSource.Monotonic.ValueTimeMark, another: TimeSource.Monotonic.ValueTimeMark): Duration\n fun adjustReading(timeMark: TimeSource.Monotonic.ValueTimeMark, duration: Duration): TimeSource.Monotonic.ValueTimeMark\n}\n\n/**\n * An abstract class used to implement time sources that return their readings as [Long] values in the specified [unit].\n *\n * Time marks returned by this time source can be compared for difference with other time marks\n * obtained from the same time source.\n *\n * @property unit The unit in which this time source's readings are expressed.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic abstract class AbstractLongTimeSource(protected val unit: DurationUnit) : TimeSource.WithComparableMarks {\n /**\n * This protected method should be overridden to return the current reading of the time source expressed as a [Long] number\n * in the unit specified by the [unit] property.\n *\n * Note that the value returned by this method when [markNow] is called the first time is used as \"zero\" reading\n * and the difference from this \"zero\" reading is calculated for subsequent values.\n * Therefore, it's not recommended to return values farther than `\u00b1Long.MAX_VALUE` from the first returned reading\n * as this will cause this time source flip over future/past boundary for the returned time marks.\n */\n protected abstract fun read(): Long\n\n private val zero by lazy { read() }\n private fun adjustedRead(): Long = read() - zero\n\n private class LongTimeMark(private val startedAt: Long, private val timeSource: AbstractLongTimeSource, private val offset: Duration) : ComparableTimeMark {\n override fun elapsedNow(): Duration =\n saturatingOriginsDiff(timeSource.adjustedRead(), startedAt, timeSource.unit) - offset\n\n override fun plus(duration: Duration): ComparableTimeMark {\n val unit = timeSource.unit\n if (duration.isInfinite()) {\n val newValue = saturatingAdd(startedAt, unit, duration)\n return LongTimeMark(newValue, timeSource, Duration.ZERO)\n }\n val durationInUnit = duration.truncateTo(unit)\n val rest = (duration - durationInUnit) + offset\n var sum = saturatingAdd(startedAt, unit, durationInUnit)\n val restInUnit = rest.truncateTo(unit)\n sum = saturatingAdd(sum, unit, restInUnit)\n var restUnderUnit = rest - restInUnit\n val restUnderUnitNs = restUnderUnit.inWholeNanoseconds\n if (sum != 0L && restUnderUnitNs != 0L && (sum xor restUnderUnitNs) < 0L) {\n // normalize offset to be the same sign as new startedAt\n val correction = restUnderUnitNs.sign.toDuration(unit)\n sum = saturatingAdd(sum, unit, correction)\n restUnderUnit -= correction\n }\n val newValue = sum\n val newOffset = if (newValue.isSaturated()) Duration.ZERO else restUnderUnit\n return LongTimeMark(newValue, timeSource, newOffset)\n }\n\n override fun minus(other: ComparableTimeMark): Duration {\n if (other !is LongTimeMark || this.timeSource != other.timeSource)\n throw IllegalArgumentException(\"Subtracting or comparing time marks from different time sources is not possible: $this and $other\")\n\n val startedAtDiff = saturatingOriginsDiff(this.startedAt, other.startedAt, timeSource.unit)\n return startedAtDiff + (offset - other.offset)\n }\n\n override fun equals(other: Any?): Boolean =\n other is LongTimeMark && this.timeSource == other.timeSource && (this - other) == Duration.ZERO\n\n override fun hashCode(): Int = offset.hashCode() * 37 + startedAt.hashCode()\n\n override fun toString(): String = \"LongTimeMark($startedAt${timeSource.unit.shortName()} + $offset, $timeSource)\"\n }\n\n override fun markNow(): ComparableTimeMark = LongTimeMark(adjustedRead(), this, Duration.ZERO)\n}\n\n/**\n * An abstract class used to implement time sources that return their readings as [Double] values in the specified [unit].\n *\n * @property unit The unit in which this time source's readings are expressed.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalTime\n@Deprecated(\"Using AbstractDoubleTimeSource is no longer recommended, use AbstractLongTimeSource instead.\")\npublic abstract class AbstractDoubleTimeSource(protected val unit: DurationUnit) : TimeSource.WithComparableMarks {\n /**\n * This protected method should be overridden to return the current reading of the time source expressed as a [Double] number\n * in the unit specified by the [unit] property.\n */\n protected abstract fun read(): Double\n\n @Suppress(\"DEPRECATION\")\n private class DoubleTimeMark(private val startedAt: Double, private val timeSource: AbstractDoubleTimeSource, private val offset: Duration) : ComparableTimeMark {\n override fun elapsedNow(): Duration = (timeSource.read() - startedAt).toDuration(timeSource.unit) - offset\n override fun plus(duration: Duration): ComparableTimeMark = DoubleTimeMark(startedAt, timeSource, offset + duration)\n\n override fun minus(other: ComparableTimeMark): Duration {\n if (other !is DoubleTimeMark || this.timeSource != other.timeSource)\n throw IllegalArgumentException(\"Subtracting or comparing time marks from different time sources is not possible: $this and $other\")\n\n if (this.offset == other.offset && this.offset.isInfinite()) return Duration.ZERO\n val offsetDiff = this.offset - other.offset\n val startedAtDiff = (this.startedAt - other.startedAt).toDuration(timeSource.unit)\n return if (startedAtDiff == -offsetDiff) Duration.ZERO else startedAtDiff + offsetDiff\n }\n\n override fun equals(other: Any?): Boolean {\n return other is DoubleTimeMark && this.timeSource == other.timeSource && (this - other) == Duration.ZERO\n }\n\n override fun hashCode(): Int {\n return (startedAt.toDuration(timeSource.unit) + offset).hashCode()\n }\n\n override fun toString(): String = \"DoubleTimeMark($startedAt${timeSource.unit.shortName()} + $offset, $timeSource)\"\n }\n\n override fun markNow(): ComparableTimeMark = DoubleTimeMark(read(), this, Duration.ZERO)\n}\n\n/**\n * A time source that has programmatically updatable readings. It is useful as a predictable source of time in tests.\n *\n * The current reading value can be advanced by the specified duration amount with the operator [plusAssign]:\n *\n * ```\n * val timeSource = TestTimeSource()\n * timeSource += 10.seconds\n * ```\n *\n * Time marks returned by this time source can be compared for difference with other time marks\n * obtained from the same time source.\n *\n * Implementation note: the current reading value is stored as a [Long] number of nanoseconds,\n * thus it's capable to represent a time range of approximately \u00b1292 years.\n * Should the reading value overflow as the result of [plusAssign] operation, an [IllegalStateException] is thrown.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic class TestTimeSource : AbstractLongTimeSource(unit = DurationUnit.NANOSECONDS) {\n private var reading: Long = 0L\n\n init {\n markNow() // fix zero reading in the super time source\n }\n\n override fun read(): Long = reading\n\n /**\n * Advances the current reading value of this time source by the specified [duration].\n *\n * [duration] value is rounded down towards zero when converting it to a [Long] number of nanoseconds.\n * For example, if the duration being added is `0.6.nanoseconds`, the reading doesn't advance because\n * the duration value is rounded to zero nanoseconds.\n *\n * @throws IllegalStateException when the reading value overflows as the result of this operation.\n */\n public operator fun plusAssign(duration: Duration) {\n val longDelta = duration.toLong(unit)\n if (!longDelta.isSaturated()) {\n // when delta fits in long, add it as long\n val newReading = reading + longDelta\n if (reading xor longDelta >= 0 && reading xor newReading < 0) overflow(duration)\n reading = newReading\n } else {\n val half = duration / 2\n if (!half.toLong(unit).isSaturated()) {\n val readingBefore = reading\n try {\n plusAssign(half)\n plusAssign(duration - half)\n } catch (e: IllegalStateException) {\n reading = readingBefore\n throw e\n }\n } else {\n overflow(duration)\n }\n }\n }\n\n private fun overflow(duration: Duration) {\n throw IllegalStateException(\"TestTimeSource will overflow if its reading ${reading}${unit.shortName()} is advanced by $duration.\")\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(\"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-2022 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.time\n\nimport kotlin.time.Duration.Companion.milliseconds\n\n// Long time reading saturation math, shared between JVM and Native\n\ninternal fun saturatingAdd(value: Long, unit: DurationUnit, duration: Duration): Long {\n val durationInUnit = duration.toLong(unit)\n if (value.isSaturated()) { // the reading is infinitely saturated\n return checkInfiniteSumDefined(value, duration, durationInUnit)\n }\n if (durationInUnit.isSaturated()) { // duration doesn't fit in Long units\n return saturatingAddInHalves(value, unit, duration)\n }\n\n val result = value + durationInUnit\n if (((value xor result) and (durationInUnit xor result)) < 0) {\n return if (value < 0) Long.MIN_VALUE else Long.MAX_VALUE\n }\n return result\n}\n\nprivate fun checkInfiniteSumDefined(value: Long, duration: Duration, durationInUnit: Long): Long {\n if (duration.isInfinite() && (value xor durationInUnit < 0)) throw IllegalArgumentException(\"Summing infinities of different signs\")\n return value\n}\n\nprivate fun saturatingAddInHalves(value: Long, unit: DurationUnit, duration: Duration): Long {\n val half = duration / 2\n val halfInUnit = half.toLong(unit)\n if (halfInUnit.isSaturated()) {\n return halfInUnit // value + inf == inf, return saturated value\n } else {\n return saturatingAdd(saturatingAdd(value, unit, half), unit, duration - half)\n }\n}\n\nprivate fun infinityOfSign(value: Long): Duration = if (value < 0) Duration.NEG_INFINITE else Duration.INFINITE\n\ninternal fun saturatingDiff(valueNs: Long, origin: Long, unit: DurationUnit): Duration {\n if (origin.isSaturated()) { // MIN_VALUE or MAX_VALUE\n return -infinityOfSign(origin)\n }\n return saturatingFiniteDiff(valueNs, origin, unit)\n}\n\ninternal fun saturatingOriginsDiff(origin1: Long, origin2: Long, unit: DurationUnit): Duration {\n if (origin2.isSaturated()) {\n if (origin1 == origin2) return Duration.ZERO // saturated values of the same sign are considered equal\n return -infinityOfSign(origin2)\n }\n if (origin1.isSaturated()) {\n return infinityOfSign(origin1)\n }\n return saturatingFiniteDiff(origin1, origin2, unit)\n}\n\nprivate fun saturatingFiniteDiff(value1: Long, value2: Long, unit: DurationUnit): Duration {\n val result = value1 - value2\n if ((result xor value1) and (result xor value2).inv() < 0) { // Long overflow\n if (unit < DurationUnit.MILLISECONDS) {\n val unitsInMilli = convertDurationUnit(1, DurationUnit.MILLISECONDS, unit)\n val resultMs = value1 / unitsInMilli - value2 / unitsInMilli\n val resultUnit = value1 % unitsInMilli - value2 % unitsInMilli\n return resultMs.milliseconds + resultUnit.toDuration(unit)\n } else {\n return -infinityOfSign(result)\n }\n }\n return result.toDuration(unit)\n}\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal inline fun Long.isSaturated(): Boolean =\n (this - 1) or 1 == Long.MAX_VALUE // == either MAX_VALUE or MIN_VALUE\n","/*\n * Copyright 2010-2022 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.time\n\nimport kotlin.contracts.*\n\n/**\n * Executes the given function [block] and returns the duration of elapsed time interval.\n *\n * The elapsed time is measured with [TimeSource.Monotonic].\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic inline fun measureTime(block: () -> Unit): Duration {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return TimeSource.Monotonic.measureTime(block)\n}\n\n\n/**\n * Executes the given function [block] and returns the duration of elapsed time interval.\n *\n * The elapsed time is measured with the specified `this` [TimeSource] instance.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic inline fun TimeSource.measureTime(block: () -> Unit): Duration {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n\n val mark = markNow()\n block()\n return mark.elapsedNow()\n}\n\n/**\n * Executes the given function [block] and returns the duration of elapsed time interval.\n *\n * The elapsed time is measured with the specified `this` [TimeSource.Monotonic] instance.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic inline fun TimeSource.Monotonic.measureTime(block: () -> Unit): Duration {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n\n val mark = markNow()\n block()\n return mark.elapsedNow()\n}\n\n\n/**\n * Data class representing a result of executing an action, along with the duration of elapsed time interval.\n *\n * @property value the result of the action.\n * @property duration the time elapsed to execute the action.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic data class TimedValue(val value: T, val duration: Duration)\n\n/**\n * Executes the given function [block] and returns an instance of [TimedValue] class, containing both\n * the result of the function execution and the duration of elapsed time interval.\n *\n * The elapsed time is measured with [TimeSource.Monotonic].\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic inline fun measureTimedValue(block: () -> T): TimedValue {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n\n return TimeSource.Monotonic.measureTimedValue(block)\n}\n\n/**\n * Executes the given [block] and returns an instance of [TimedValue] class, containing both\n * the result of function execution and the duration of elapsed time interval.\n *\n * The elapsed time is measured with the specified `this` [TimeSource] instance.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic inline fun TimeSource.measureTimedValue(block: () -> T): TimedValue {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n\n val mark = markNow()\n val result = block()\n return TimedValue(result, mark.elapsedNow())\n}\n\n/**\n * Executes the given [block] and returns an instance of [TimedValue] class, containing both\n * the result of function execution and the duration of elapsed time interval.\n *\n * The elapsed time is measured with the specified `this` [TimeSource.Monotonic] instance.\n */\n@SinceKotlin(\"1.9\")\n@WasExperimental(ExperimentalTime::class)\npublic inline fun TimeSource.Monotonic.measureTimedValue(block: () -> T): TimedValue {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n\n val mark = markNow()\n val result = block()\n return TimedValue(result, mark.elapsedNow())\n}\n","/*\n * Copyright 2010-2020 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.coroutines.*\nimport kotlin.coroutines.intrinsics.*\nimport kotlin.native.concurrent.SharedImmutable\n\n/**\n * Defines deep recursive function that keeps its stack on the heap,\n * which allows very deep recursive computations that do not use the actual call stack.\n * To initiate a call to this deep recursive function use its [invoke] function.\n * As a rule of thumb, it should be used if recursion goes deeper than a thousand calls.\n *\n * The [DeepRecursiveFunction] takes one parameter of type [T] and returns a result of type [R].\n * The [block] of code defines the body of a recursive function. In this block\n * [callRecursive][DeepRecursiveScope.callRecursive] function can be used to make a recursive call\n * to the declared function. Other instances of [DeepRecursiveFunction] can be called\n * in this scope with `callRecursive` extension, too.\n *\n * For example, take a look at the following recursive tree class and a deeply\n * recursive instance of this tree with 100K nodes:\n *\n * ```\n * class Tree(val left: Tree? = null, val right: Tree? = null)\n * val deepTree = generateSequence(Tree()) { Tree(it) }.take(100_000).last()\n * ```\n *\n * A regular recursive function can be defined to compute a depth of a tree:\n *\n * ```\n * fun depth(t: Tree?): Int =\n * if (t == null) 0 else max(depth(t.left), depth(t.right)) + 1\n * println(depth(deepTree)) // StackOverflowError\n * ```\n *\n * If this `depth` function is called for a `deepTree` it produces `StackOverflowError` because of deep recursion.\n * However, the `depth` function can be rewritten using `DeepRecursiveFunction` in the following way, and then\n * it successfully computes [`depth(deepTree)`][DeepRecursiveFunction.invoke] expression:\n *\n * ```\n * val depth = DeepRecursiveFunction { t ->\n * if (t == null) 0 else max(callRecursive(t.left), callRecursive(t.right)) + 1\n * }\n * println(depth(deepTree)) // Ok\n * ```\n *\n * Deep recursive functions can also mutually call each other using a heap for the stack via\n * [callRecursive][DeepRecursiveScope.callRecursive] extension. For example, the\n * following pair of mutually recursive functions computes the number of tree nodes at even depth in the tree.\n *\n * ```\n * val mutualRecursion = object {\n * val even: DeepRecursiveFunction = DeepRecursiveFunction { t ->\n * if (t == null) 0 else odd.callRecursive(t.left) + odd.callRecursive(t.right) + 1\n * }\n * val odd: DeepRecursiveFunction = DeepRecursiveFunction { t ->\n * if (t == null) 0 else even.callRecursive(t.left) + even.callRecursive(t.right)\n * }\n * }\n * ```\n *\n * @param [T] the function parameter type.\n * @param [R] the function result type.\n * @param block the function body.\n */\n@SinceKotlin(\"1.7\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic class DeepRecursiveFunction(\n internal val block: suspend DeepRecursiveScope.(T) -> R\n)\n\n/**\n * Initiates a call to this deep recursive function, forming a root of the call tree.\n *\n * This operator should not be used from inside of [DeepRecursiveScope] as it uses the call stack slot for\n * initial recursive invocation. From inside of [DeepRecursiveScope] use\n * [callRecursive][DeepRecursiveScope.callRecursive].\n */\n@SinceKotlin(\"1.7\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic operator fun DeepRecursiveFunction.invoke(value: T): R =\n DeepRecursiveScopeImpl(block, value).runCallLoop()\n\n/**\n * A scope class for [DeepRecursiveFunction] function declaration that defines [callRecursive] methods to\n * recursively call this function or another [DeepRecursiveFunction] putting the call activation frame on the heap.\n *\n * @param [T] function parameter type.\n * @param [R] function result type.\n */\n@RestrictsSuspension\n@SinceKotlin(\"1.7\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic sealed class DeepRecursiveScope {\n /**\n * Makes recursive call to this [DeepRecursiveFunction] function putting the call activation frame on the heap,\n * as opposed to the actual call stack that is used by a regular recursive call.\n */\n public abstract suspend fun callRecursive(value: T): R\n\n /**\n * Makes call to the specified [DeepRecursiveFunction] function putting the call activation frame on the heap,\n * as opposed to the actual call stack that is used by a regular call.\n */\n public abstract suspend fun DeepRecursiveFunction.callRecursive(value: U): S\n\n @Deprecated(\n level = DeprecationLevel.ERROR,\n message =\n \"'invoke' should not be called from DeepRecursiveScope. \" +\n \"Use 'callRecursive' to do recursion in the heap instead of the call stack.\",\n replaceWith = ReplaceWith(\"this.callRecursive(value)\")\n )\n @Suppress(\"UNUSED_PARAMETER\")\n public operator fun DeepRecursiveFunction<*, *>.invoke(value: Any?): Nothing =\n throw UnsupportedOperationException(\"Should not be called from DeepRecursiveScope\")\n}\n\n// ================== Implementation ==================\n\nprivate typealias DeepRecursiveFunctionBlock = suspend DeepRecursiveScope<*, *>.(Any?) -> Any?\n\n@SharedImmutable\nprivate val UNDEFINED_RESULT = Result.success(COROUTINE_SUSPENDED)\n\n@Suppress(\"UNCHECKED_CAST\")\nprivate class DeepRecursiveScopeImpl(\n block: suspend DeepRecursiveScope.(T) -> R,\n value: T\n) : DeepRecursiveScope(), Continuation {\n // Active function block\n private var function: DeepRecursiveFunctionBlock = block as DeepRecursiveFunctionBlock\n\n // Value to call function with\n private var value: Any? = value\n\n // Continuation of the current call\n private var cont: Continuation? = this as Continuation\n\n // Completion result (completion of the whole call stack)\n private var result: Result = UNDEFINED_RESULT\n\n override val context: CoroutineContext\n get() = EmptyCoroutineContext\n\n override fun resumeWith(result: Result) {\n this.cont = null\n this.result = result\n }\n\n override suspend fun callRecursive(value: T): R = suspendCoroutineUninterceptedOrReturn { cont ->\n // calling the same function that is currently active\n this.cont = cont as Continuation\n this.value = value\n COROUTINE_SUSPENDED\n }\n\n override suspend fun DeepRecursiveFunction.callRecursive(value: U): S = suspendCoroutineUninterceptedOrReturn { cont ->\n // calling another recursive function\n val function = block as DeepRecursiveFunctionBlock\n with(this@DeepRecursiveScopeImpl) {\n val currentFunction = this.function\n if (function !== currentFunction) {\n // calling a different function -- create a trampoline to restore function ref\n this.function = function\n this.cont = crossFunctionCompletion(currentFunction, cont as Continuation)\n } else {\n // calling the same function -- direct\n this.cont = cont as Continuation\n }\n this.value = value\n }\n COROUTINE_SUSPENDED\n }\n\n private fun crossFunctionCompletion(\n currentFunction: DeepRecursiveFunctionBlock,\n cont: Continuation\n ): Continuation = Continuation(EmptyCoroutineContext) {\n this.function = currentFunction\n // When going back from a trampoline we cannot just call cont.resume (stack usage!)\n // We delegate the cont.resumeWith(it) call to runCallLoop\n this.cont = cont\n this.result = it\n }\n\n @Suppress(\"UNCHECKED_CAST\")\n fun runCallLoop(): R {\n while (true) {\n // Note: cont is set to null in DeepRecursiveScopeImpl.resumeWith when the whole computation completes\n val result = this.result\n val cont = this.cont\n ?: return (result as Result).getOrThrow() // done -- final result\n // The order of comparison is important here for that case of rogue class with broken equals\n if (UNDEFINED_RESULT == result) {\n // call \"function\" with \"value\" using \"cont\" as completion\n val r = try {\n // This is block.startCoroutine(this, value, cont)\n function.startCoroutineUninterceptedOrReturn(this, value, cont)\n } catch (e: Throwable) {\n cont.resumeWithException(e)\n continue\n }\n // If the function returns without suspension -- calls its continuation immediately\n if (r !== COROUTINE_SUSPENDED)\n cont.resume(r as R)\n } else {\n // we returned from a crossFunctionCompletion trampoline -- call resume here\n this.result = UNDEFINED_RESULT // reset result back\n cont.resumeWith(result)\n }\n }\n }\n}\n","/*\n * Copyright 2010-2023 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\n@file:kotlin.jvm.JvmName(\"NumbersKt\")\n@file:kotlin.jvm.JvmMultifileClass\npackage kotlin\n\nimport kotlin.math.sign\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Byte.floorDiv(other: Byte): Int = \n this.toInt().floorDiv(other.toInt())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Byte.mod(other: Byte): Byte = \n this.toInt().mod(other.toInt()).toByte()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Byte.floorDiv(other: Short): Int = \n this.toInt().floorDiv(other.toInt())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Byte.mod(other: Short): Short = \n this.toInt().mod(other.toInt()).toShort()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Byte.floorDiv(other: Int): Int = \n this.toInt().floorDiv(other)\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Byte.mod(other: Int): Int = \n this.toInt().mod(other)\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Byte.floorDiv(other: Long): Long = \n this.toLong().floorDiv(other)\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Byte.mod(other: Long): Long = \n this.toLong().mod(other)\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Short.floorDiv(other: Byte): Int = \n this.toInt().floorDiv(other.toInt())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Short.mod(other: Byte): Byte = \n this.toInt().mod(other.toInt()).toByte()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Short.floorDiv(other: Short): Int = \n this.toInt().floorDiv(other.toInt())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Short.mod(other: Short): Short = \n this.toInt().mod(other.toInt()).toShort()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Short.floorDiv(other: Int): Int = \n this.toInt().floorDiv(other)\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Short.mod(other: Int): Int = \n this.toInt().mod(other)\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Short.floorDiv(other: Long): Long = \n this.toLong().floorDiv(other)\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Short.mod(other: Long): Long = \n this.toLong().mod(other)\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Int.floorDiv(other: Byte): Int = \n this.floorDiv(other.toInt())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Int.mod(other: Byte): Byte = \n this.mod(other.toInt()).toByte()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Int.floorDiv(other: Short): Int = \n this.floorDiv(other.toInt())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Int.mod(other: Short): Short = \n this.mod(other.toInt()).toShort()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Int.floorDiv(other: Int): Int {\n var q = this / other\n if (this xor other < 0 && q * other != this) q-- \n return q\n}\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Int.mod(other: Int): Int {\n val r = this % other\n return r + (other and (((r xor other) and (r or -r)) shr 31))\n}\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Int.floorDiv(other: Long): Long = \n this.toLong().floorDiv(other)\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Int.mod(other: Long): Long = \n this.toLong().mod(other)\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Long.floorDiv(other: Byte): Long = \n this.floorDiv(other.toLong())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Long.mod(other: Byte): Byte = \n this.mod(other.toLong()).toByte()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Long.floorDiv(other: Short): Long = \n this.floorDiv(other.toLong())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Long.mod(other: Short): Short = \n this.mod(other.toLong()).toShort()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Long.floorDiv(other: Int): Long = \n this.floorDiv(other.toLong())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Long.mod(other: Int): Int = \n this.mod(other.toLong()).toInt()\n\n/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Long.floorDiv(other: Long): Long {\n var q = this / other\n if (this xor other < 0 && q * other != this) q-- \n return q\n}\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Long.mod(other: Long): Long {\n val r = this % other\n return r + (other and (((r xor other) and (r or -r)) shr 63))\n}\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n *\n * If the result cannot be represented exactly, it is rounded to the nearest representable number. In this case the absolute value of the result can be less than or _equal to_ the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Float.mod(other: Float): Float {\n val r = this % other\n return if (r != 0.0.toFloat() && r.sign != other.sign) r + other else r\n}\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n *\n * If the result cannot be represented exactly, it is rounded to the nearest representable number. In this case the absolute value of the result can be less than or _equal to_ the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Float.mod(other: Double): Double = \n this.toDouble().mod(other)\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n *\n * If the result cannot be represented exactly, it is rounded to the nearest representable number. In this case the absolute value of the result can be less than or _equal to_ the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Double.mod(other: Float): Double = \n this.mod(other.toDouble())\n\n/**\n * Calculates the remainder of flooring division of this value (dividend) by the other value (divisor).\n *\n * The result is either zero or has the same sign as the _divisor_ and has the absolute value less than the absolute value of the divisor.\n *\n * If the result cannot be represented exactly, it is rounded to the nearest representable number. In this case the absolute value of the result can be less than or _equal to_ the absolute value of the divisor.\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\n@kotlin.internal.IntrinsicConstEvaluation\npublic inline fun Double.mod(other: Double): Double {\n val r = this % other\n return if (r != 0.0 && r.sign != other.sign) r + other else r\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\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-2020 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 = KotlinVersionCurrentValue.get()\n }\n}\n\n// this class is ignored during classpath normalization when considering whether to recompile dependencies in Kotlin build\nprivate object KotlinVersionCurrentValue {\n @kotlin.jvm.JvmStatic\n fun get(): KotlinVersion = KotlinVersion(1, 9, 0) // value is written here automatically during build\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-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(\"NumbersKt\")\npackage kotlin\n\n/**\n * Counts the number of set bits in the binary representation of this [Int] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Int.countOneBits(): Int\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Int] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Int.countLeadingZeroBits(): Int\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Int] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Int.countTrailingZeroBits(): Int\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [Int] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Int.takeHighestOneBit(): Int\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [Int] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Int.takeLowestOneBit(): Int\n\n/**\n * Rotates the binary representation of this [Int] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [Int.SIZE_BITS] (32) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 32)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Int.rotateLeft(bitCount: Int): Int\n\n\n/**\n * Rotates the binary representation of this [Int] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [Int.SIZE_BITS] (32) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 32)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Int.rotateRight(bitCount: Int): Int\n\n\n/**\n * Counts the number of set bits in the binary representation of this [Long] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Long.countOneBits(): Int\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Long] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Long.countLeadingZeroBits(): Int\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Long] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Long.countTrailingZeroBits(): Int\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [Long] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Long.takeHighestOneBit(): Long\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [Long] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Long.takeLowestOneBit(): Long\n\n/**\n * Rotates the binary representation of this [Long] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [Long.SIZE_BITS] (64) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 64)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Long.rotateLeft(bitCount: Int): Long\n\n/**\n * Rotates the binary representation of this [Long] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [Long.SIZE_BITS] (64) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 64)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun Long.rotateRight(bitCount: Int): Long\n\n/**\n * Counts the number of set bits in the binary representation of this [Byte] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Byte.countOneBits(): Int = (toInt() and 0xFF).countOneBits()\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Byte] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Byte.countLeadingZeroBits(): Int = (toInt() and 0xFF).countLeadingZeroBits() - (Int.SIZE_BITS - Byte.SIZE_BITS)\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Byte] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Byte.countTrailingZeroBits(): Int = (toInt() or 0x100).countTrailingZeroBits()\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [Byte] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Byte.takeHighestOneBit(): Byte = (toInt() and 0xFF).takeHighestOneBit().toByte()\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [Byte] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Byte.takeLowestOneBit(): Byte = toInt().takeLowestOneBit().toByte()\n\n\n/**\n * Rotates the binary representation of this [Byte] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [Byte.SIZE_BITS] (8) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 8)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Byte.rotateLeft(bitCount: Int): Byte =\n (toInt().shl(bitCount and 7) or (toInt() and 0xFF).ushr(8 - (bitCount and 7))).toByte()\n\n/**\n * Rotates the binary representation of this [Byte] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [Byte.SIZE_BITS] (8) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 8)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Byte.rotateRight(bitCount: Int): Byte =\n (toInt().shl(8 - (bitCount and 7)) or (toInt() and 0xFF).ushr(bitCount and 7)).toByte()\n\n/**\n * Counts the number of set bits in the binary representation of this [Short] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Short.countOneBits(): Int = (toInt() and 0xFFFF).countOneBits()\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Short] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Short.countLeadingZeroBits(): Int =\n (toInt() and 0xFFFF).countLeadingZeroBits() - (Int.SIZE_BITS - Short.SIZE_BITS)\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Short] number.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Short.countTrailingZeroBits(): Int = (toInt() or 0x10000).countTrailingZeroBits()\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [Short] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Short.takeHighestOneBit(): Short = (toInt() and 0xFFFF).takeHighestOneBit().toShort()\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [Short] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Short.takeLowestOneBit(): Short = toInt().takeLowestOneBit().toShort()\n\n\n/**\n * Rotates the binary representation of this [Short] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [Short.SIZE_BITS] (16) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 16)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Short.rotateLeft(bitCount: Int): Short =\n (toInt().shl(bitCount and 15) or (toInt() and 0xFFFF).ushr(16 - (bitCount and 15))).toShort()\n\n/**\n * Rotates the binary representation of this [Short] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [Short.SIZE_BITS] (16) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 16)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Short.rotateRight(bitCount: Int): Short =\n (toInt().shl(16 - (bitCount and 15)) or (toInt() and 0xFFFF).ushr(bitCount and 15)).toShort()\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\")\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-2023 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\npublic class UIntRange(start: UInt, endInclusive: UInt) : UIntProgression(start, endInclusive, 1), ClosedRange, OpenEndRange {\n override val start: UInt get() = first\n override val endInclusive: UInt get() = last\n \n @Deprecated(\"Can throw an exception when it's impossible to represent the value with UInt type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.\")\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n override val endExclusive: UInt get() {\n if (last == UInt.MAX_VALUE) error(\"Cannot return the exclusive upper bound of a range that includes MAX_VALUE.\")\n return last + 1u\n }\n\n override fun contains(value: UInt): Boolean = first <= value && value <= last\n\n /** \n * Checks if the range is empty.\n \n * The range is empty if its start value is greater than the end value.\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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 final override fun iterator(): Iterator = UIntProgressionIterator(first, last, step)\n\n /** \n * Checks if the progression is empty.\n \n * Progression with a positive step is empty if its first element is greater than the last element.\n * Progression with a negative step is empty if its first element is less than the last element.\n */\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\")\nprivate class UIntProgressionIterator(first: UInt, last: UInt, step: Int) : Iterator {\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 next(): 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-2023 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\npublic class ULongRange(start: ULong, endInclusive: ULong) : ULongProgression(start, endInclusive, 1), ClosedRange, OpenEndRange {\n override val start: ULong get() = first\n override val endInclusive: ULong get() = last\n \n @Deprecated(\"Can throw an exception when it's impossible to represent the value with ULong type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.\")\n @SinceKotlin(\"1.9\")\n @WasExperimental(ExperimentalStdlibApi::class)\n override val endExclusive: ULong get() {\n if (last == ULong.MAX_VALUE) error(\"Cannot return the exclusive upper bound of a range that includes MAX_VALUE.\")\n return last + 1u\n }\n\n override fun contains(value: ULong): Boolean = first <= value && value <= last\n\n /** \n * Checks if the range is empty.\n \n * The range is empty if its start value is greater than the end value.\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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 final override fun iterator(): Iterator = ULongProgressionIterator(first, last, step)\n\n /** \n * Checks if the progression is empty.\n \n * Progression with a positive step is empty if its first element is greater than the last element.\n * Progression with a negative step is empty if its first element is less than the last element.\n */\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\")\nprivate class ULongProgressionIterator(first: ULong, last: ULong, step: Long) : Iterator {\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 next(): 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-2021 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun max(a: ULong, b: ULong): ULong {\n return maxOf(a, b)\n}","/*\n * Copyright 2010-2021 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(\"UNumbersKt\")\npackage kotlin\n\n/**\n * Counts the number of set bits in the binary representation of this [UInt] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UInt.countOneBits(): Int = toInt().countOneBits()\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [UInt] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UInt.countLeadingZeroBits(): Int = toInt().countLeadingZeroBits()\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [UInt] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UInt.countTrailingZeroBits(): Int = toInt().countTrailingZeroBits()\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [UInt] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UInt.takeHighestOneBit(): UInt = toInt().takeHighestOneBit().toUInt()\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [UInt] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UInt.takeLowestOneBit(): UInt = toInt().takeLowestOneBit().toUInt()\n\n/**\n * Rotates the binary representation of this [UInt] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [UInt.SIZE_BITS] (32) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 32)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UInt.rotateLeft(bitCount: Int): UInt = toInt().rotateLeft(bitCount).toUInt()\n\n\n/**\n * Rotates the binary representation of this [UInt] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [UInt.SIZE_BITS] (32) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 32)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UInt.rotateRight(bitCount: Int): UInt = toInt().rotateRight(bitCount).toUInt()\n\n\n/**\n * Counts the number of set bits in the binary representation of this [ULong] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULong.countOneBits(): Int = toLong().countOneBits()\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [ULong] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULong.countLeadingZeroBits(): Int = toLong().countLeadingZeroBits()\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [ULong] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULong.countTrailingZeroBits(): Int = toLong().countTrailingZeroBits()\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [ULong] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULong.takeHighestOneBit(): ULong = toLong().takeHighestOneBit().toULong()\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [ULong] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULong.takeLowestOneBit(): ULong = toLong().takeLowestOneBit().toULong()\n\n/**\n * Rotates the binary representation of this [ULong] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [ULong.SIZE_BITS] (64) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 64)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULong.rotateLeft(bitCount: Int): ULong = toLong().rotateLeft(bitCount).toULong()\n\n/**\n * Rotates the binary representation of this [ULong] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [ULong.SIZE_BITS] (64) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 64)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun ULong.rotateRight(bitCount: Int): ULong = toLong().rotateRight(bitCount).toULong()\n\n/**\n * Counts the number of set bits in the binary representation of this [UByte] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByte.countOneBits(): Int = toUInt().countOneBits()\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [UByte] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByte.countLeadingZeroBits(): Int = toByte().countLeadingZeroBits()\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [UByte] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByte.countTrailingZeroBits(): Int = toByte().countTrailingZeroBits()\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [UByte] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByte.takeHighestOneBit(): UByte = toInt().takeHighestOneBit().toUByte()\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [UByte] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByte.takeLowestOneBit(): UByte = toInt().takeLowestOneBit().toUByte()\n\n\n/**\n * Rotates the binary representation of this [UByte] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [UByte.SIZE_BITS] (8) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 8)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByte.rotateLeft(bitCount: Int): UByte = toByte().rotateLeft(bitCount).toUByte()\n\n/**\n * Rotates the binary representation of this [UByte] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [UByte.SIZE_BITS] (8) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 8)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UByte.rotateRight(bitCount: Int): UByte = toByte().rotateRight(bitCount).toUByte()\n\n/**\n * Counts the number of set bits in the binary representation of this [UShort] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShort.countOneBits(): Int = toUInt().countOneBits()\n\n/**\n * Counts the number of consecutive most significant bits that are zero in the binary representation of this [UShort] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShort.countLeadingZeroBits(): Int = toShort().countLeadingZeroBits()\n\n/**\n * Counts the number of consecutive least significant bits that are zero in the binary representation of this [UShort] number.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShort.countTrailingZeroBits(): Int = toShort().countTrailingZeroBits()\n\n/**\n * Returns a number having a single bit set in the position of the most significant set bit of this [UShort] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShort.takeHighestOneBit(): UShort = toInt().takeHighestOneBit().toUShort()\n\n/**\n * Returns a number having a single bit set in the position of the least significant set bit of this [UShort] number,\n * or zero, if this number is zero.\n */\n@SinceKotlin(\"1.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class, ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShort.takeLowestOneBit(): UShort = toInt().takeLowestOneBit().toUShort()\n\n\n/**\n * Rotates the binary representation of this [UShort] number left by the specified [bitCount] number of bits.\n * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side.\n *\n * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count:\n * `number.rotateLeft(-n) == number.rotateRight(n)`\n *\n * Rotating by a multiple of [UShort.SIZE_BITS] (16) returns the same number, or more generally\n * `number.rotateLeft(n) == number.rotateLeft(n % 16)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShort.rotateLeft(bitCount: Int): UShort = toShort().rotateLeft(bitCount).toUShort()\n\n/**\n * Rotates the binary representation of this [UShort] number right by the specified [bitCount] number of bits.\n * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side.\n *\n * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count:\n * `number.rotateRight(-n) == number.rotateLeft(n)`\n *\n * Rotating by a multiple of [UShort.SIZE_BITS] (16) returns the same number, or more generally\n * `number.rotateRight(n) == number.rotateRight(n % 16)`\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class, ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun UShort.rotateRight(bitCount: Int): UShort = toShort().rotateRight(bitCount).toUShort()\n","/*\n * Copyright 2010-2021 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 - 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-2021 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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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 limitForMaxRadix = 119304647u // limit / 36\n\n var limitBeforeMul = limitForMaxRadix\n val uradix = radix.toUInt()\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) {\n if (limitBeforeMul == limitForMaxRadix) {\n limitBeforeMul = limit / uradix\n\n if (result > limitBeforeMul) {\n return null\n }\n } else {\n return null\n }\n }\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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.5\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\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 limitForMaxRadix = 512409557603043100uL // limit / 36\n\n var limitBeforeMul = limitForMaxRadix\n val uradix = radix.toULong()\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) {\n if (limitBeforeMul == limitForMaxRadix) {\n limitBeforeMul = limit / uradix\n\n if (result > limitBeforeMul) {\n return null\n }\n } else {\n return null\n }\n }\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 [OptIn] annotation, e.g. `@OptIn(ExperimentalUnsignedTypes::class)`,\n * or with the `-opt-in=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@RequiresOptIn(level = RequiresOptIn.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)\npublic annotation class ExperimentalUnsignedTypes\n","/*\n * Copyright 2010-2022 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\n/**\n * Returns the cube root of [x]. For any `x`, `cbrt(-x) == -cbrt(x)`;\n * that is, the cube root of a negative value is the negative of the cube root\n * of that value's magnitude. Special cases:\n *\n * Special cases:\n * - If the argument is `NaN`, then the result is `NaN`.\n * - If the argument is infinite, then the result is an infinity with the same sign as the argument.\n * - If the argument is zero, then the result is a zero with the same sign as the argument.\n */\n@SinceKotlin(\"1.8\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun cbrt(x: Double): Double\n\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(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: 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\n/**\n * Returns the cube root of [x]. For any `x`, `cbrt(-x) == -cbrt(x)`;\n * that is, the cube root of a negative value is the negative of the cube root\n * of that value's magnitude. Special cases:\n *\n * Special cases:\n * - If the argument is `NaN`, then the result is `NaN`.\n * - If the argument is infinite, then the result is an infinity with the same sign as the argument.\n * - If the argument is zero, then the result is a zero with the same sign as the argument.\n */\n@SinceKotlin(\"1.8\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic expect fun cbrt(x: Float): Float\n\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","/*\n * Copyright 2010-2022 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@PublishedApi\n@JsName(\"Math\")\ninternal external object JsMath {\n val LN2: Double\n fun abs(value: Double): Double\n fun acos(value: Double): Double\n fun asin(value: Double): Double\n fun atan(value: Double): Double\n fun atan2(y: Double, x: Double): Double\n fun cos(value: Double): Double\n fun sin(value: Double): Double\n fun exp(value: Double): Double\n fun max(vararg values: Int): Int\n fun max(vararg values: Float): Float\n fun max(vararg values: Double): Double\n fun min(vararg values: Int): Int\n fun min(vararg values: Float): Float\n fun min(vararg values: Double): Double\n fun sqrt(value: Double): Double\n fun tan(value: Double): Double\n fun log(value: Double): Double\n fun cbrt(value: Double): Double\n fun pow(base: Double, exp: Double): Double\n fun round(value: Number): Double\n fun floor(value: Number): Double\n fun ceil(value: Number): Double\n}\n\ninternal const val defineTaylorNBound = \"\"\"\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\"\"\"\n\ninternal const val defineUpperTaylor2Bound = \"\"\"\n $defineTaylorNBound\n var upper_taylor_2_bound = 1/taylor_2_bound;\n\"\"\"\n\ninternal const val defineUpperTaylorNBound = \"\"\"\n $defineUpperTaylor2Bound\n var upper_taylor_n_bound = 1/taylor_n_bound;\n\"\"\"\n"],"names":["root","factory","Kotlin","_","a","toString","e","arr","b","i","n","result","array","name","f","paramCount","getter","setter","getPropertyRefClass","obj","cache","propertyRefClassMetadataCache","getPropertyRefMetadata","obj1","obj2","objType","str","o","POW_2_32","OBJECT_HASH_CODE_PROPERTY_NAME","getObjectHashCode","hash","getStringHashCode","code","low","high","value","cachedObj","lowBits","highBits","opt_radix","radix","radixToPower","size","power","radixLong","div","rem","remDiv","intval","digits","val","bit","other","thisNeg","otherNeg","a48","a32","a16","a00","b48","b32","b16","b00","c48","c32","c16","c00","halfThis","approx","res","log2","delta","approxRes","approxRem","numBits","id","declaration","tag","fun","type","object","klass","fn","abiVersion","moduleName","data","qualifier","typeParameter","throwMarkerError","defaultValue","typeA","ia","imul","buf","bufFloat64","bufFloat32","bufInt32","lowIndex","highIndex","x","searchString","position","subjectString","lastIndex","epsilon","taylor_2_bound","taylor_n_bound","upper_taylor_2_bound","upper_taylor_n_bound","y","y1","asinh","x3","y3","x2","x4","length","log","LN2","asUint","O","len","start","relativeStart","k","end","relativeEnd","finalValue","normalizeOffset","offset","typedArraySlice","begin","arrays","TypedArray","apply","self","callback","totalOrderComparator","compareFunction","thisObject","propertyName","propertyDescriptor","isInheritanceFromInterface","ctor","iface","metadata","interfaces","superPrototype","superConstructor","proto","constructor","klassMetadata"],"mappings":"AAWC,UAXS,CAACA,I,EAAMC,OAAP,E;EACN,IAAI,OAAO,MAAO,KAAI,UAAW,IAAG,MAAH,CAAU,GAA3C,C,CAAgD;A,IAC5C,MAAM,CAAC,QAAD,EAAW,CAAC,SAAD,CAAX,EAAwB,OAAxB,C;SAEL,IAAI,OAAO,OAAQ,KAAI,QAAvB,C,CAAiC;A,IAClC,OAAO,CAAC,MAAD,CAAQ,OAAR,C;SAEN;A,IACD,IAAY,CAAP,MAAO,GAAE,E;IACd,OAAO,CAAC,IAAD,CAAM,MAAN,C;;CAEd,CAAC,IAAD,WAAgB,CAACC,MAAD,E;EACb,IAAIC,IAAI,M;ECPU;;;IAAtB,MAAsB,CAAf,cAAe,YAAW,CAACC,CAAD,E;IAC7B,OAAoD,CAA5C,KAAa,CAAP,OAAO,CAAC,CAAD,CAAI,IAAG,CAAE,YAAW,SAAW,KAAG,CAAS,CAAP,MAAO,KAAI,c;G;EAGxE,MAAmB,CAAZ,WAAY,YAAW,CAACA,CAAD,E;IAC1B,OAAO,CAAE,YAAW,SAAU,IAAG,CAAS,CAAP,MAAO,KAAI,c;G;EAGlD,MAAoB,CAAb,YAAa,YAAW,CAACA,CAAD,E;IAC3B,OAAO,CAAE,YAAW,U;G;EAGxB,MAAmB,CAAZ,WAAY,YAAW,CAACA,CAAD,E;IAC1B,OAAO,CAAE,YAAW,WAAY,IAAG,CAAS,CAAP,MAAO,KAAI,W;G;EAGpD,MAAkB,CAAX,UAAW,YAAW,CAACA,CAAD,E;IACzB,OAAO,CAAE,YAAW,U;G;EAGxB,MAAoB,CAAb,YAAa,YAAW,CAACA,CAAD,E;IAC3B,OAAO,CAAE,YAAW,Y;G;EAGxB,MAAqB,CAAd,aAAc,YAAW,CAACA,CAAD,E;IAC5B,OAAO,CAAE,YAAW,Y;G;EAGxB,MAAmB,CAAZ,WAAY,YAAW,CAACA,CAAD,E;IAC1B,OAAO,KAAa,CAAP,OAAO,CAAC,CAAD,CAAI,IAAG,CAAS,CAAP,MAAO,KAAI,W;G;EAG5C,MAAe,CAAR,OAAQ,YAAW,CAACA,CAAD,E;IACtB,OAAO,KAAa,CAAP,OAAO,CAAC,CAAD,CAAI,IAAG,CAAC,CAAD,CAAG,M;G;EAGlC,MAAkB,CAAX,UAAW,YAAW,CAACA,CAAD,E;IACzB,OAAO,KAAa,CAAP,OAAO,CAAC,CAAD,CAAI,IAAG,WAAkB,CAAN,MAAM,CAAC,CAAD,C;G;EAGjD,MAAqB,CAAd,aAAc,YAAW,CAACA,CAAD,E;IAC5B,IAAI,CAAE,KAAI,IAAV,C;MAAgB,OAAO,M;IACvB,IAAIC,WAAW,MAAkB,CAAX,WAAW,CAAC,CAAD,CAAI,GAAE,MAAF,CAAS,YAAT,GAAwB,MAAxB,CAA+B,Q;IACpE,OAAO,GAAI,GAAE,KAAwB,CAAlB,SAAkB,CAAR,GAAQ,CAAJ,IAAI,CAAC,CAAD,WAAY,CAACC,CAAD,E;MAAM,OAAO,QAAQ,CAAC,CAAD,C;KAAjC,CAA6C,CAAJ,IAAI,CAAC,IAAD,CAAO,GAAE,G;G;EAG/F,MAAyB,CAAlB,iBAAkB,YAAW,CAACC,GAAD,E;IAChC,OAAO,MAAiD,CAA1C,MAA0C,CAAnC,WAAmC,CAAvB,uBAAuB,CAAC,GAAD,C;G;EAG5D,MAAmB,CAAZ,WAAY,YAAW,CAACH,C,EAAGI,CAAJ,E;IAC1B,IAAI,CAAE,KAAI,CAAV,C,CAAa;A,MACT,OAAO,I;;IAEX,IAAI,CAAE,KAAI,IAAK,IAAG,CAAE,KAAI,IAAK,IAAG,CAAC,MAAiB,CAAV,UAAU,CAAC,CAAD,CAAI,IAAG,CAAS,CAAP,MAAO,KAAI,CAAJ,CAAM,MAAxE,C,CAAgF;A,MAC5E,OAAO,K;;IAGX,KAAK,IAAIC,IAAI,CAAR,EAAWC,IAAI,CAAJA,CAAM,MAAtB,EAA8B,CAAE,GAAE,CAAlC,EAAqC,CAAC,EAAtC,C,CAA0C;A,MACtC,IAAI,CAAC,MAAa,CAAN,MAAM,CAAC,CAAC,CAAC,CAAD,CAAF,EAAO,CAAC,CAAC,CAAD,CAAR,CAAlB,C,CAAgC;A,QAC5B,OAAO,K;;;IAGf,OAAO,I;G;EAGX,MAAuB,CAAhB,eAAgB,YAAW,CAACN,C,EAAGI,CAAJ,E;IAC9B,OAAO,MAA+C,CAAxC,MAAwC,CAAjC,WAAiC,CAArB,qBAAqB,CAAC,CAAD,EAAI,CAAJ,C;G;EAG1D,MAAqB,CAAd,aAAc,YAAW,CAACD,GAAD,E;IAC5B,IAAI,GAAI,KAAI,IAAZ,C;MAAkB,OAAO,C;IACzB,IAAII,SAAS,C;IACb,KAAK,IAAIF,IAAI,CAAR,EAAWC,IAAI,GAAJA,CAAQ,MAAxB,EAAgC,CAAE,GAAE,CAApC,EAAuC,CAAC,EAAxC,C,CAA4C;A,MACxC,MAAO,GAAqB,CAAjB,EAAG,GAAE,MAAO,GAAE,CAAG,IAAE,MAAe,CAAR,QAAQ,CAAC,GAAG,CAAC,CAAD,CAAJ,CAAU,GAAE,C;;IAE7D,OAAO,M;G;EAGX,MAAyB,CAAlB,iBAAkB,YAAW,CAACH,GAAD,E;IAChC,OAAO,MAAiD,CAA1C,MAA0C,CAAnC,WAAmC,CAAvB,uBAAuB,CAAC,GAAD,C;G;EAG5D,MAA0B,CAAnB,kBAAmB,YAAW,CAACK,KAAD,E;IACjC,KAAU,CAAJ,IAAI,CAAC,MAAD,CAAQ,eAAR,C;G;ECpFQ;;;IAAtB,MAAsB,CAAf,cAAe,YAAU,CAACC,I,EAAMC,CAAP,E;IAC5B,CAAe,CAAb,YAAa,GAAE,I;IACjB,OAAO,C;G;EAGX,MAA8B,CAAvB,sBAAuB,YAAU,CAACD,I,EAAME,U,EAAYC,M,EAAQC,MAA3B,E;IACpC,MAAW,CAAJ,GAAI,GAAE,M;IACb,MAAW,CAAJ,GAAI,GAAE,M;IACb,MAAoB,CAAb,YAAa,GAAE,I;IACtB,OAAO,mBAAmB,CAAC,MAAD,EAAS,MAAT,EAAiB,6BAA6B,CAAC,UAAD,CAA9C,C;G;8BAGFC,CAACC,G,EAAKF,M,EAAQG,KAAdF,E;IACxB,GAAe,CAAX,UAAW,GAAE,sBAAsB,CAAC,OAAO,MAAO,KAAI,UAAW,GAAE,KAAF,CAAQ,OAAR,GAAkB,KAAlB,CAAwB,SAAtD,C;IACvC,GAAgB,CAAZ,WAAY,GAAE,G;IAClB,OAAO,G;G;EAGX,IAAIG,gCAAgC,CAChC,CACI,OADJ,EACa,CAAE,KAAF,EAAS,IAAT,EAAe,oBAAf,WAA8C,CAAA,E;IACnD,OAAO,MAAP,CAAc,MAAd,CAAqB,OAArB,CAA6B,iB;GADxB,CADb,EAII,SAJJ,EAIe,CAAE,KAAF,EAAS,IAAT,EAAe,oBAAf,WAA8C,CAAA,E;IACrD,OAAO,MAAP,CAAc,MAAd,CAAqB,OAArB,CAA6B,U;GADtB,CAJf,CADgC,EAShC,CACI,OADJ,EACa,CAAE,KAAF,EAAS,IAAT,EAAe,oBAAf,WAA8C,CAAA,E;IACnD,OAAO,MAAP,CAAc,MAAd,CAAqB,OAArB,CAA6B,iB;GADxB,CADb,EAII,SAJJ,EAIe,CAAE,KAAF,EAAS,IAAT,EAAe,oBAAf,WAA8C,CAAA,E;IACrD,OAAO,MAAP,CAAc,MAAd,CAAqB,OAArB,CAA6B,U;GADtB,CAJf,CATgC,C;iCAmBLC,CAACF,KAADE,E;IAC3B,IAAI,KAAY,CAAN,KAAM,KAAI,IAApB,C,CAA0B;A,MACtB,KAAY,CAAN,KAAM,GAAE,CACV,UADU,EACE,CAAC,KAA0B,CAApB,oBAAoB,EAA3B,CADF,EAEV,SAFU,EAEC,IAFD,EAGV,SAHU,EAGC,EAHD,EAIV,UAJU,EAIE,EAJF,EAKV,KALU,EAKH,EALG,EAMV,aANU,EAMK,EANL,C;;IASlB,OAAO,KAAP,CAAa,K;G;EChDF;;;IAAf,MAAe,CAAR,OAAQ,YAAW,CAAClB,CAAD,E;IACtB,OAAoB,CAAZ,CAAE,GAAE,KAAQ,KAAG,EAAG,IAAG,E;G;EAGjC,MAAc,CAAP,MAAO,YAAW,CAACA,CAAD,E;IACrB,OAAkB,CAAV,CAAE,GAAE,GAAM,KAAG,EAAG,IAAG,E;G;EAG/B,MAAc,CAAP,MAAO,YAAW,CAACA,CAAD,E;IACrB,OAAO,CAAE,GAAE,K;G;EAGf,MAAoB,CAAb,YAAa,YAAW,CAACA,CAAD,E;IAC3B,OAAO,CAAE,YAAW,MAAX,CAAkB,IAAK,GAAE,CAAF,GAAM,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,CAAD,C;G;EAGhE,MAAmB,CAAZ,WAAY,YAAW,CAACA,CAAD,E;IAC1B,OAAO,CAAE,YAAW,MAAX,CAAkB,IAAK,GAAE,CAAO,CAAL,KAAK,EAAT,GAAc,MAAkB,CAAX,WAAW,CAAC,CAAD,C;G;EAGpE,MAAqB,CAAd,aAAc,YAAW,CAACA,CAAD,E;IAC5B,OAAO,MAAc,CAAP,OAAO,CAAC,MAAkB,CAAX,WAAW,CAAC,CAAD,CAAnB,C;G;EAGzB,MAAoB,CAAb,YAAa,YAAW,CAACA,CAAD,E;IAC3B,OAAO,MAAa,CAAN,MAAM,CAAC,MAAkB,CAAX,WAAW,CAAC,CAAD,CAAnB,C;G;EAGxB,MAAsB,CAAf,cAAe,YAAW,CAACA,CAAD,E;IAC7B,OAAO,CAAC,C;G;EAGZ,MAAoB,CAAb,YAAa,YAAW,CAACA,CAAD,E;IAC3B,OAAO,MAAa,CAAN,MAAM,CAAC,MAAkB,CAAX,WAAW,CAAC,CAAD,CAAnB,C;G;EAGxB,MAAmB,CAAZ,WAAY,YAAU,CAACA,CAAD,E;IACzB,IAAI,CAAE,GAAE,UAAR,C;MAAoB,OAAO,U;IAC3B,IAAI,CAAE,GAAE,WAAR,C;MAAqB,OAAO,W;IAC5B,OAAO,CAAE,GAAE,C;G;EAGf,MAAmB,CAAZ,WAAY,YAAW,CAACA,CAAD,E;IAC1B,IAAI,CAAE,IAAG,IAAT,C;MAAe,OAAO,C;IACtB,IAAI,CAAE,YAAW,MAAX,CAAkB,SAAxB,C;MAAmC,OAAO,C;IAC1C,OAAO,IAAI,MAAJ,CAAW,SAAX,CAAqB,CAArB,C;G;EAGX,MAAiB,CAAV,SAAU,YAAU,CAACA,CAAD,E;IACvB,IAAI,CAAE,IAAG,IAAT,C;MAAe,OAAO,C;IACtB,OAAO,MAAa,CAAN,MAAM,CAAC,CAAD,C;G;EClDV;;;IAAd,MAAc,CAAP,MAAO,YAAW,CAACmB,I,EAAMC,IAAP,E;IACrB,IAAI,IAAK,IAAG,IAAZ,C,CAAkB;A,MACd,OAAO,IAAK,IAAG,I;;IAGnB,IAAI,IAAK,IAAG,IAAZ,C,CAAkB;A,MACd,OAAO,K;;IAGX,IAAI,IAAK,KAAI,IAAb,C,CAAmB;A,MACf,OAAO,IAAK,KAAI,I;;IAGpB,IAAI,OAAO,IAAK,KAAI,QAAS,IAAG,OAAO,IAAP,CAAY,MAAO,KAAI,UAAvD,C,CAAmE;A,MAC/D,OAAO,IAAW,CAAN,MAAM,CAAC,IAAD,C;;IAGtB,IAAI,OAAO,IAAK,KAAI,QAAS,IAAG,OAAO,IAAK,KAAI,QAAhD,C,CAA0D;A,MACtD,OAAO,IAAK,KAAI,IAAK,KAAI,IAAK,KAAI,CAAE,IAAG,CAAE,GAAE,IAAK,KAAI,CAAE,GAAE,IAAnC,C;;IAGzB,OAAO,IAAK,KAAI,I;G;EAGpB,MAAgB,CAAT,QAAS,YAAW,CAACL,GAAD,E;IACvB,IAAI,GAAI,IAAG,IAAX,C,CAAiB;A,MACb,OAAO,C;;IAEX,IAAIM,UAAU,OAAO,G;IACrB,IAAI,QAAS,KAAI,OAAjB,C,CAA0B;A,MACtB,OAAO,UAAW,KAAI,OAAO,GAAP,CAAW,QAAS,GAAE,GAAY,CAAR,QAAQ,EAAd,GAAmB,iBAAiB,CAAC,GAAD,C;;IAElF,IAAI,UAAW,KAAI,OAAnB,C,CAA4B;A,MACxB,OAAO,iBAAiB,CAAC,GAAD,C;;IAE5B,IAAI,QAAS,KAAI,OAAjB,C,CAA0B;A,MACtB,OAAO,MAAqB,CAAd,cAAc,CAAC,GAAD,C;;IAEhC,IAAI,SAAU,KAAI,OAAlB,C,CAA2B;A,MACvB,OAAO,MAAM,CAAC,GAAD,C;;IAGjB,IAAIC,MAAM,MAAM,CAAC,GAAD,C;IAChB,OAAO,iBAAiB,CAAC,GAAD,C;G;EAI5B,MAAgB,CAAT,QAAS,YAAW,CAACC,CAAD,E;IACvB,IAAI,CAAE,IAAG,IAAT,C,CAAe;A,MACX,OAAO,M;WAEN,IAAI,MAAiB,CAAV,UAAU,CAAC,CAAD,CAArB,C,CAA0B;A,MAC3B,OAAO,O;WAEN;A,MACD,OAAO,CAAU,CAAR,QAAQ,E;;GART,Y;EAahB,IAAIC,WAAW,aAAf;cAGA,IAAIC,iCAAiC,sB;4BAEXC,CAACX,GAADW,E;IACtB,IAAI,EAAE,8BAA+B,IAAG,GAApC,CAAJ,C,CAA8C;A,MAC1C,IAAIC,OAAQ,IAAW,CAAN,MAAM,EAAG,GAAE,QAAU,GAAE,CAAxC;A,MACA,MAAqB,CAAd,cAAc,CAAC,GAAD,EAAM,8BAAN,EAAsC,CAAE,KAAF,EAAU,IAAV,EAAgB,UAAhB,EAA4B,KAA5B,CAAtC,C;;IAEzB,OAAO,GAAG,CAAC,8BAAD,C;G;4BAGYC,CAACN,GAADM,E;IACtB,IAAID,OAAO,C;IACX,KAAK,IAAItB,IAAI,CAAb,EAAgB,CAAE,GAAE,GAAF,CAAM,MAAxB,EAAgC,CAAC,EAAjC,C,CAAqC;A,MACjC,IAAIwB,OAAQ,GAAc,CAAV,UAAU,CAAC,CAAD,C;MAC1B,IAAM,GAAG,IAAK,GAAE,EAAG,GAAE,IAAM,GAAE,CAAvB;A;IAEV,OAAO,I;G;EAGX,MAAwB,CAAjB,gBAAiB,GAAE,iB;EC9Cd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAZ,MAAY,CAAL,IAAK,YAAU,CAACC,G,EAAKC,IAAN,E;IAKV;;;MAAV,IAAU,CAAL,IAAK,GAAE,GAAI,GAAE,CAAR;;;;MAMV,IAAW,CAAN,KAAM,GAAE,IAAK,GAAE,CAAT;A,G;EAGb,MAAuB,CAAhB,IAAgB,CAAX,UAAW,GAAE,CACrB,IADqB,EACf,OADe,EAErB,UAFqB,EAET,MAFS,EAGrB,UAHqB,EAGV,EAHU,CAAF;;;;;;IAgBvB,MAAsB,CAAf,IAAe,CAAV,SAAU,GAAE,EAAF;;;;I;EAQtB,MAAoB,CAAb,IAAa,CAAR,OAAQ,YAAU,CAACC,KAAD,E;IAC5B,IAAI,IAAK,IAAG,KAAM,IAAG,KAAM,GAAE,GAA7B,C,CAAkC;A,MAChC,IAAIC,YAAY,MAAqB,CAAd,IAAc,CAAT,SAAS,CAAC,KAAD,C;MACrC,IAAI,SAAJ,C,CAAe;A,QACb,OAAO,S;;;IAIX,IAAIlB,MAAM,IAAI,MAAJ,CAAW,IAAX,CAAgB,KAAM,GAAE,CAAxB,EAA2B,KAAM,GAAE,CAAE,GAAE,EAAF,GAAO,CAA5C,C;IACV,IAAI,IAAK,IAAG,KAAM,IAAG,KAAM,GAAE,GAA7B,C,CAAkC;A,MAChC,MAAqB,CAAd,IAAc,CAAT,SAAS,CAAC,KAAD,CAAQ,GAAE,G;;IAEjC,OAAO,G;GAZW;;;;;;;I;EAwBpB,MAAuB,CAAhB,IAAgB,CAAX,UAAW,YAAU,CAACiB,KAAD,E;IAC/B,IAAI,KAAK,CAAC,KAAD,CAAT,C,CAAkB;A,MAChB,OAAO,MAAP,CAAc,IAAd,CAAmB,I;WACd,IAAI,KAAM,IAAG,CAAC,MAAD,CAAQ,IAAR,CAAa,eAA1B,C,CAA2C;A,MAChD,OAAO,MAAP,CAAc,IAAd,CAAmB,S;WACd,IAAI,KAAM,GAAE,CAAE,IAAG,MAAH,CAAU,IAAV,CAAe,eAA7B,C,CAA8C;A,MACnD,OAAO,MAAP,CAAc,IAAd,CAAmB,S;WACd,IAAI,KAAM,GAAE,CAAZ,C,CAAe;A,MACpB,OAAO,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,CAAC,KAAF,CAAe,CAAN,MAAM,E;WACvC;A,MACL,OAAO,IAAI,MAAJ,CAAW,IAAX,CACF,KAAM,GAAE,MAAF,CAAS,IAAT,CAAc,eAAiB,GAAE,CADrC,EAEF,KAAM,GAAE,MAAF,CAAS,IAAT,CAAc,eAAiB,GAAE,CAFrC,C;;GAVY;;;;;;I;EAwBvB,MAAqB,CAAd,IAAc,CAAT,QAAS,YAAU,CAACE,O,EAASC,QAAV,E;IAC7B,OAAO,IAAI,MAAJ,CAAW,IAAX,CAAgB,OAAhB,EAAyB,QAAzB,C;GADY;;;;;;I;EAYrB,MAAuB,CAAhB,IAAgB,CAAX,UAAW,YAAU,CAACb,G,EAAKc,SAAN,E;IAC/B,IAAI,GAAW,CAAP,MAAO,IAAG,CAAlB,C,CAAqB;A,MACnB,MAAM,KAAK,CAAC,mCAAD,C;;IAGb,IAAIC,QAAQ,SAAU,IAAG,E;IACzB,IAAI,KAAM,GAAE,CAAE,IAAG,EAAG,GAAE,KAAtB,C,CAA6B;A,MAC3B,MAAM,KAAK,CAAC,sBAAuB,GAAE,KAA1B,C;;IAGb,IAAI,GAAU,CAAN,MAAM,CAAC,CAAD,CAAI,IAAG,GAArB,C,CAA0B;A,MACxB,OAAO,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,GAAa,CAAT,SAAS,CAAC,CAAD,CAAd,EAAmB,KAAnB,CAAgC,CAAN,MAAM,E;WACxD,IAAI,GAAW,CAAP,OAAO,CAAC,GAAD,CAAM,IAAG,CAAxB,C,CAA2B;A,MAChC,MAAM,KAAK,CAAC,+CAAgD,GAAE,GAAnD,C;;;;IAKb,IAAIC,eAAe,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,IAAQ,CAAH,GAAG,CAAC,KAAD,EAAQ,CAAR,CAAT,C;IAEzC,IAAI/B,SAAS,MAATA,CAAgB,IAAhBA,CAAqB,I;IACzB,KAAK,IAAIF,IAAI,CAAb,EAAgB,CAAE,GAAE,GAAF,CAAM,MAAxB,EAAgC,CAAE,IAAG,CAArC,C,CAAwC;A,MACtC,IAAIkC,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAD,EAAI,GAAW,CAAP,MAAO,GAAE,CAAjB,C;MACnB,IAAIP,QAAQ,QAAQ,CAAC,GAAa,CAAT,SAAS,CAAC,CAAD,EAAI,CAAE,GAAE,IAAR,CAAd,EAA6B,KAA7B,C;MACpB,IAAI,IAAK,GAAE,CAAX,C,CAAc;A,QACZ,IAAIQ,QAAQ,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,IAAQ,CAAH,GAAG,CAAC,KAAD,EAAQ,IAAR,CAAT,C;QAClC,MAAO,GAAE,MAAe,CAAR,QAAQ,CAAC,KAAD,CAAW,CAAH,GAAG,CAAC,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,KAAD,CAAvB,C;aAC9B;A,QACL,MAAO,GAAE,MAAe,CAAR,QAAQ,CAAC,YAAD,C;QACxB,MAAO,GAAE,MAAU,CAAH,GAAG,CAAC,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,KAAD,CAAvB,C;;;IAGvB,OAAO,M;GAhCc;;;;;;;IA8CvB,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GAAE,CAAE,IAAG,EAAP;;;I;EAO5B,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GAAE,CAAE,IAAG,EAAP;;;I;EAO5B,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GACxB,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GAAE,MAAF,CAAS,IAAT,CAAc,eADlB;;;I;EAQ5B,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GACxB,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GAAE,CADN;;;I;EAQ5B,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GACxB,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GAAE,MAAF,CAAS,IAAT,CAAc,eADlB;;;I;EAQ5B,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GACxB,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GAAE,MAAF,CAAS,IAAT,CAAc,eADlB;;;I;EAQ5B,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GACxB,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GAAE,CADN,0B;EAK5B,MAAiB,CAAV,IAAU,CAAL,IAAK,GAAE,MAAmB,CAAZ,IAAY,CAAP,OAAO,CAAC,CAAD,CAArB,0B;EAIjB,MAAgB,CAAT,IAAS,CAAJ,GAAI,GAAE,MAAmB,CAAZ,IAAY,CAAP,OAAO,CAAC,CAAD,CAArB,0B;EAIhB,MAAoB,CAAb,IAAa,CAAR,OAAQ,GAAE,MAAmB,CAAZ,IAAY,CAAP,OAAO,CAAC,EAAD,CAArB,0B;EAIpB,MAAsB,CAAf,IAAe,CAAV,SAAU,GAClB,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,aAAW,GAAE,CAAd,EAAiB,UAAW,GAAE,CAA9B,CADF,0B;EAKtB,MAAsB,CAAf,IAAe,CAAV,SAAU,GAAE,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,CAAD,EAAI,aAAW,GAAE,CAAjB,CAAtB;;;I;EAOtB,MAAwB,CAAjB,IAAiB,CAAZ,WAAY,GAAE,MAAmB,CAAZ,IAAY,CAAP,OAAO,CAAC,CAAE,IAAG,EAAN,CAArB,kE;EAIxB,MAA4B,CAArB,IAAqB,CAAhB,SAAgB,CAAN,KAAM,YAAU,CAAA,E;IACpC,OAAO,IAAP,CAAY,I;GADc,+E;EAM5B,MAA+B,CAAxB,IAAwB,CAAnB,SAAmB,CAAT,QAAS,YAAU,CAAA,E;IACvC,OAAO,IAAW,CAAN,KAAM,GAAE,MAAF,CAAS,IAAT,CAAc,eAAgB,GACzC,IAAuB,CAAlB,kBAAkB,E;GAFD,yD;EAM/B,MAA+B,CAAxB,IAAwB,CAAnB,SAAmB,CAAT,QAAS,YAAU,CAAA,E;IACvC,OAAO,IAAW,CAAN,KAAM,GAAE,IAAF,CAAO,I;GADI;;;;I;EAS/B,MAA+B,CAAxB,IAAwB,CAAnB,SAAmB,CAAT,QAAS,YAAU,CAACJ,SAAD,E;IACvC,IAAIC,QAAQ,SAAU,IAAG,E;IACzB,IAAI,KAAM,GAAE,CAAE,IAAG,EAAG,GAAE,KAAtB,C,CAA6B;A,MAC3B,MAAM,KAAK,CAAC,sBAAuB,GAAE,KAA1B,C;;IAGb,IAAI,IAAW,CAAN,MAAM,EAAf,C,CAAmB;A,MACjB,OAAO,G;;IAGT,IAAI,IAAe,CAAV,UAAU,EAAnB,C,CAAuB;A,MACrB,IAAI,IAAe,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,SAAb,CAAnB,C,CAA4C;A,QAG1C;;YAAII,YAAY,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,KAAD,C;QACtC,IAAIC,MAAM,IAAQ,CAAH,GAAG,CAAC,SAAD,C;QAClB,IAAIC,MAAM,GAAY,CAAR,QAAQ,CAAC,SAAD,CAAoB,CAAR,QAAQ,CAAC,IAAD,C;QAC1C,OAAO,GAAY,CAAR,QAAQ,CAAC,KAAD,CAAQ,GAAE,GAAS,CAAL,KAAK,EAAW,CAAR,QAAQ,CAAC,KAAD,C;aAC5C;A,QACL,OAAO,GAAI,GAAE,IAAW,CAAN,MAAM,EAAW,CAAR,QAAQ,CAAC,KAAD,C;;;;;IAMvC,IAAIL,eAAe,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,IAAQ,CAAH,GAAG,CAAC,KAAD,EAAQ,CAAR,CAAT,C;IAEzC,IAAIK,MAAM,I;IACV,IAAIpC,SAAS,E;IACb,OAAO,IAAP,C,CAAa;A,MACX,IAAIqC,SAAS,GAAO,CAAH,GAAG,CAAC,YAAD,C;MACpB,IAAIC,SAAS,GAAY,CAAR,QAAQ,CAAC,MAAe,CAAR,QAAQ,CAAC,YAAD,CAAhB,CAAqC,CAAL,KAAK,E;MAC9D,IAAIC,SAAS,MAAe,CAAR,QAAQ,CAAC,KAAD,C;MAE5B,GAAI,GAAE,M;MACN,IAAI,GAAU,CAAN,MAAM,EAAd,C,CAAkB;A,QAChB,OAAO,MAAO,GAAE,M;aACX;A,QACL,OAAO,MAAc,CAAP,MAAO,GAAE,CAAvB,C,CAA0B;A,UACxB,MAAO,GAAE,GAAI,GAAE,M;;QAEjB,MAAO,GAAE,EAAG,GAAE,MAAO,GAAE,M;;;GAzCE,0D;EAgD/B,MAAkC,CAA3B,IAA2B,CAAtB,SAAsB,CAAZ,WAAY,YAAU,CAAA,E;IAC1C,OAAO,IAAP,CAAY,K;GADoB,yD;EAMlC,MAAiC,CAA1B,IAA0B,CAArB,SAAqB,CAAX,UAAW,YAAU,CAAA,E;IACzC,OAAO,IAAP,CAAY,I;GADmB,4D;EAMjC,MAAyC,CAAlC,IAAkC,CAA7B,SAA6B,CAAnB,kBAAmB,YAAU,CAAA,E;IACjD,OAAQ,IAAU,CAAL,IAAK,IAAG,CAAG,GACpB,IADoB,CACf,IADe,GACR,MAA4B,CAArB,IAAqB,CAAhB,eAAgB,GAAE,IAAF,CAAO,I;GAFZ;;;I;EAUzC,MAAoC,CAA7B,IAA6B,CAAxB,SAAwB,CAAd,aAAc,YAAU,CAAA,E;IAC5C,IAAI,IAAe,CAAV,UAAU,EAAnB,C,CAAuB;A,MACrB,IAAI,IAAe,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,SAAb,CAAnB,C,CAA4C;A,QAC1C,OAAO,E;aACF;A,QACL,OAAO,IAAW,CAAN,MAAM,EAAgB,CAAb,aAAa,E;;WAE/B;A,MACL,IAAIC,MAAM,IAAW,CAAN,KAAM,IAAG,CAAE,GAAE,IAAF,CAAO,KAAP,GAAe,IAAf,CAAoB,I;MAC9C,KAAK,IAAIC,MAAM,EAAf,EAAmB,GAAI,GAAE,CAAzB,EAA4B,GAAG,EAA/B,C,CAAmC;A,QACjC,IAAuB,CAAlB,GAAI,GAAG,CAAE,IAAG,GAAM,KAAG,CAA1B,C,CAA6B;A,UAC3B,K;;;MAGJ,OAAO,IAAW,CAAN,KAAM,IAAG,CAAE,GAAE,GAAI,GAAE,EAAR,GAAa,GAAI,GAAE,C;;GAdV,mD;EAoBpC,MAA6B,CAAtB,IAAsB,CAAjB,SAAiB,CAAP,MAAO,YAAU,CAAA,E;IACrC,OAAO,IAAW,CAAN,KAAM,IAAG,CAAE,IAAG,IAAU,CAAL,IAAK,IAAG,C;GADZ,uD;EAM7B,MAAiC,CAA1B,IAA0B,CAArB,SAAqB,CAAX,UAAW,YAAU,CAAA,E;IACzC,OAAO,IAAW,CAAN,KAAM,GAAE,C;GADW,kD;EAMjC,MAA4B,CAArB,IAAqB,CAAhB,SAAgB,CAAN,KAAM,YAAU,CAAA,E;IACpC,OAAuB,CAAf,IAAU,CAAL,IAAK,GAAE,CAAG,KAAG,C;GADA;;;I;EAS5B,MAAiC,CAA1B,IAA0B,CAArB,SAAqB,CAAX,UAAW,YAAU,CAACC,KAAD,E;IACzC,OAAQ,IAAW,CAAN,KAAM,IAAG,KAAH,CAAS,KAAO,IAAI,IAAU,CAAL,IAAK,IAAG,KAAH,CAAS,I;GAD3B;;;I;EASjC,MAAoC,CAA7B,IAA6B,CAAxB,SAAwB,CAAd,aAAc,YAAU,CAACA,KAAD,E;IAC5C,OAAQ,IAAW,CAAN,KAAM,IAAG,KAAH,CAAS,KAAO,IAAI,IAAU,CAAL,IAAK,IAAG,KAAH,CAAS,I;GADxB;;;I;EASpC,MAA+B,CAAxB,IAAwB,CAAnB,SAAmB,CAAT,QAAS,YAAU,CAACA,KAAD,E;IACvC,OAAO,IAAY,CAAP,OAAO,CAAC,KAAD,CAAQ,GAAE,C;GADA;;;I;EAS/B,MAAsC,CAA/B,IAA+B,CAA1B,SAA0B,CAAhB,eAAgB,YAAU,CAACA,KAAD,E;IAC9C,OAAO,IAAY,CAAP,OAAO,CAAC,KAAD,CAAQ,IAAG,C;GADM;;;I;EAStC,MAAkC,CAA3B,IAA2B,CAAtB,SAAsB,CAAZ,WAAY,YAAU,CAACA,KAAD,E;IAC1C,OAAO,IAAY,CAAP,OAAO,CAAC,KAAD,CAAQ,GAAE,C;GADG;;;I;EASlC,MAAyC,CAAlC,IAAkC,CAA7B,SAA6B,CAAnB,kBAAmB,YAAU,CAACA,KAAD,E;IACjD,OAAO,IAAY,CAAP,OAAO,CAAC,KAAD,CAAQ,IAAG,C;GADS;;;;;I;EAWzC,MAA8B,CAAvB,IAAuB,CAAlB,SAAkB,CAAR,OAAQ,YAAU,CAACA,KAAD,E;IACtC,IAAI,IAAe,CAAV,UAAU,CAAC,KAAD,CAAnB,C,CAA4B;A,MAC1B,OAAO,C;;IAGT,IAAIC,UAAU,IAAe,CAAV,UAAU,E;IAC7B,IAAIC,WAAW,KAAgB,CAAV,UAAU,E;IAC/B,IAAI,OAAQ,IAAG,CAAC,QAAhB,C,CAA0B;A,MACxB,OAAO,E;;IAET,IAAI,CAAC,OAAQ,IAAG,QAAhB,C,CAA0B;A,MACxB,OAAO,C;;;IAIT,IAAI,IAAa,CAAR,QAAQ,CAAC,KAAD,CAAkB,CAAV,UAAU,EAAnC,C,CAAuC;A,MACrC,OAAO,E;WACF;A,MACL,OAAO,C;;GAlBmB,wD;EAwB9B,MAA6B,CAAtB,IAAsB,CAAjB,SAAiB,CAAP,MAAO,YAAU,CAAA,E;IACrC,IAAI,IAAe,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,SAAb,CAAnB,C,CAA4C;A,MAC1C,OAAO,MAAP,CAAc,IAAd,CAAmB,S;WACd;A,MACL,OAAO,IAAQ,CAAH,GAAG,EAAM,CAAH,GAAG,CAAC,MAAD,CAAQ,IAAR,CAAa,GAAb,C;;GAJI;;;;I;EAc7B,MAA0B,CAAnB,IAAmB,CAAd,SAAc,CAAJ,GAAI,YAAU,CAACF,KAAD,E;IAGlC;QAAIG,MAAM,IAAW,CAAN,KAAM,KAAI,E;IACzB,IAAIC,MAAM,IAAW,CAAN,KAAM,GAAE,K;IACvB,IAAIC,MAAM,IAAU,CAAL,IAAK,KAAI,E;IACxB,IAAIC,MAAM,IAAU,CAAL,IAAK,GAAE,K;IAEtB,IAAIC,MAAM,KAAY,CAAN,KAAM,KAAI,E;IAC1B,IAAIC,MAAM,KAAY,CAAN,KAAM,GAAE,K;IACxB,IAAIC,MAAM,KAAW,CAAL,IAAK,KAAI,E;IACzB,IAAIC,MAAM,KAAW,CAAL,IAAK,GAAE,K;IAEvB,IAAIC,MAAM,CAAV,EAAaC,MAAM,CAAnB,EAAsBC,MAAM,CAA5B,EAA+BC,MAAM,C;IACrC,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,K;IACP,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAE,GAAI,IAAG,EAAI,GAAE,GAAf,EAAqB,GAAI,IAAG,EAAI,GAAE,GAAlC,C;GAzBH;;;;I;EAkC1B,MAA+B,CAAxB,IAAwB,CAAnB,SAAmB,CAAT,QAAS,YAAU,CAACd,KAAD,E;IACvC,OAAO,IAAQ,CAAH,GAAG,CAAC,KAAY,CAAN,MAAM,EAAb,C;GADc;;;;I;EAU/B,MAA+B,CAAxB,IAAwB,CAAnB,SAAmB,CAAT,QAAS,YAAU,CAACA,KAAD,E;IACvC,IAAI,IAAW,CAAN,MAAM,EAAf,C,CAAmB;A,MACjB,OAAO,MAAP,CAAc,IAAd,CAAmB,I;WACd,IAAI,KAAY,CAAN,MAAM,EAAhB,C,CAAoB;A,MACzB,OAAO,MAAP,CAAc,IAAd,CAAmB,I;;IAGrB,IAAI,IAAe,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,SAAb,CAAnB,C,CAA4C;A,MAC1C,OAAO,KAAW,CAAL,KAAK,EAAG,GAAE,MAAF,CAAS,IAAT,CAAc,SAAd,GAA0B,MAA1B,CAAiC,IAAjC,CAAsC,I;WACtD,IAAI,KAAgB,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,SAAb,CAApB,C,CAA6C;A,MAClD,OAAO,IAAU,CAAL,KAAK,EAAG,GAAE,MAAF,CAAS,IAAT,CAAc,SAAd,GAA0B,MAA1B,CAAiC,IAAjC,CAAsC,I;;IAG5D,IAAI,IAAe,CAAV,UAAU,EAAnB,C,CAAuB;A,MACrB,IAAI,KAAgB,CAAV,UAAU,EAApB,C,CAAwB;A,QACtB,OAAO,IAAW,CAAN,MAAM,EAAW,CAAR,QAAQ,CAAC,KAAY,CAAN,MAAM,EAAb,C;aACxB;A,QACL,OAAO,IAAW,CAAN,MAAM,EAAW,CAAR,QAAQ,CAAC,KAAD,CAAc,CAAN,MAAM,E;;WAExC,IAAI,KAAgB,CAAV,UAAU,EAApB,C,CAAwB;A,MAC7B,OAAO,IAAa,CAAR,QAAQ,CAAC,KAAY,CAAN,MAAM,EAAb,CAAuB,CAAN,MAAM,E;;;IAI7C,IAAI,IAAa,CAAR,QAAQ,CAAC,MAAD,CAAQ,IAAR,CAAa,WAAb,CAA0B,IACvC,KAAc,CAAR,QAAQ,CAAC,MAAD,CAAQ,IAAR,CAAa,WAAb,CADlB,C,CAC6C;A,MAC3C,OAAO,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,IAAa,CAAR,QAAQ,EAAG,GAAE,KAAc,CAAR,QAAQ,EAAjC,C;;;;IAM/B,IAAIG,MAAM,IAAW,CAAN,KAAM,KAAI,E;IACzB,IAAIC,MAAM,IAAW,CAAN,KAAM,GAAE,K;IACvB,IAAIC,MAAM,IAAU,CAAL,IAAK,KAAI,E;IACxB,IAAIC,MAAM,IAAU,CAAL,IAAK,GAAE,K;IAEtB,IAAIC,MAAM,KAAY,CAAN,KAAM,KAAI,E;IAC1B,IAAIC,MAAM,KAAY,CAAN,KAAM,GAAE,K;IACxB,IAAIC,MAAM,KAAW,CAAL,IAAK,KAAI,E;IACzB,IAAIC,MAAM,KAAW,CAAL,IAAK,GAAE,K;IAEvB,IAAIC,MAAM,CAAV,EAAaC,MAAM,CAAnB,EAAsBC,MAAM,CAA5B,EAA+BC,MAAM,C;IACrC,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,G;IACb,GAAI,IAAG,GAAI,KAAI,E;IACf,GAAI,IAAG,K;IACP,GAAI,IAAG,GAAI,GAAE,GAAI,GAAE,GAAI,GAAE,GAAI,GAAE,GAAI,GAAE,GAAI,GAAE,GAAI,GAAE,G;IACjD,GAAI,IAAG,K;IACP,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAE,GAAI,IAAG,EAAI,GAAE,GAAf,EAAqB,GAAI,IAAG,EAAI,GAAE,GAAlC,C;GA/DE;;;;I;EAwE/B,MAA0B,CAAnB,IAAmB,CAAd,SAAc,CAAJ,GAAI,YAAU,CAACd,KAAD,E;IAClC,IAAI,KAAY,CAAN,MAAM,EAAhB,C,CAAoB;A,MAClB,MAAM,KAAK,CAAC,kBAAD,C;WACN,IAAI,IAAW,CAAN,MAAM,EAAf,C,CAAmB;A,MACxB,OAAO,MAAP,CAAc,IAAd,CAAmB,I;;IAGrB,IAAI,IAAe,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,SAAb,CAAnB,C,CAA4C;A,MAC1C,IAAI,KAAgB,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,GAAb,CAAkB,IAClC,KAAgB,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,OAAb,CADpB,C,CAC2C;A,QACzC,OAAO,MAAP,CAAc,IAAd,CAAmB,SAAnB;A,aACK,IAAI,KAAgB,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,SAAb,CAApB,C,CAA6C;A,QAClD,OAAO,MAAP,CAAc,IAAd,CAAmB,G;aACd;A,QAEL;YAAIe,WAAW,IAAe,CAAV,UAAU,CAAC,CAAD,C;QAC9B,IAAIC,SAAS,QAAY,CAAH,GAAG,CAAC,KAAD,CAAiB,CAAT,SAAS,CAAC,CAAD,C;QAC1C,IAAI,MAAiB,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,IAAb,CAArB,C,CAAyC;A,UACvC,OAAO,KAAgB,CAAV,UAAU,EAAG,GAAE,MAAF,CAAS,IAAT,CAAc,GAAd,GAAoB,MAApB,CAA2B,IAA3B,CAAgC,O;eACrD;A,UACL,IAAItB,MAAM,IAAa,CAAR,QAAQ,CAAC,KAAc,CAAR,QAAQ,CAAC,MAAD,CAAf,C;UACvB,IAAIpC,SAAS,MAAU,CAAH,GAAG,CAAC,GAAO,CAAH,GAAG,CAAC,KAAD,CAAR,C;UACvB,OAAO,M;;;WAGN,IAAI,KAAgB,CAAV,UAAU,CAAC,MAAD,CAAQ,IAAR,CAAa,SAAb,CAApB,C,CAA6C;A,MAClD,OAAO,MAAP,CAAc,IAAd,CAAmB,I;;IAGrB,IAAI,IAAe,CAAV,UAAU,EAAnB,C,CAAuB;A,MACrB,IAAI,KAAgB,CAAV,UAAU,EAApB,C,CAAwB;A,QACtB,OAAO,IAAW,CAAN,MAAM,EAAM,CAAH,GAAG,CAAC,KAAY,CAAN,MAAM,EAAb,C;aACnB;A,QACL,OAAO,IAAW,CAAN,MAAM,EAAM,CAAH,GAAG,CAAC,KAAD,CAAc,CAAN,MAAM,E;;WAEnC,IAAI,KAAgB,CAAV,UAAU,EAApB,C,CAAwB;A,MAC7B,OAAO,IAAQ,CAAH,GAAG,CAAC,KAAY,CAAN,MAAM,EAAb,CAAuB,CAAN,MAAM,E;;;;;;;IAQxC,IAAI2D,MAAM,MAANA,CAAa,IAAbA,CAAkB,I;IACtB,IAAIvB,MAAM,I;IACV,OAAO,GAAsB,CAAlB,kBAAkB,CAAC,KAAD,CAA7B,C,CAAsC;A,MAGpC;;UAAIsB,SAAS,IAAQ,CAAH,GAAG,CAAC,CAAD,EAAI,IAAU,CAAL,KAAK,CAAC,GAAY,CAAR,QAAQ,EAAG,GAAE,KAAc,CAAR,QAAQ,EAAhC,CAAd,CAArB;;A,MAIA,IAAIE,OAAO,IAAS,CAAJ,IAAI,CAAC,IAAQ,CAAH,GAAG,CAAC,MAAD,CAAS,GAAE,IAAF,CAAO,GAAzB,C;MACpB,IAAIC,QAAS,IAAK,IAAG,EAAI,GAAE,CAAF,GAAM,IAAQ,CAAH,GAAG,CAAC,CAAD,EAAI,IAAK,GAAE,EAAX,CAAvC;;A,MAIA,IAAIC,YAAY,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,MAAD,C;MACtC,IAAIC,YAAY,SAAkB,CAAR,QAAQ,CAAC,KAAD,C;MAClC,OAAO,SAAoB,CAAV,UAAU,EAAG,IAAG,SAAqB,CAAX,WAAW,CAAC,GAAD,CAAtD,C,CAA6D;A,QAC3D,MAAO,IAAG,K;QACV,SAAU,GAAE,MAAsB,CAAf,IAAe,CAAV,UAAU,CAAC,MAAD,C;QAClC,SAAU,GAAE,SAAkB,CAAR,QAAQ,CAAC,KAAD,C;;;;MAKhC,IAAI,SAAgB,CAAN,MAAM,EAApB,C,CAAwB;A,QACtB,SAAU,GAAE,MAAF,CAAS,IAAT,CAAc,G;;MAG1B,GAAI,GAAE,GAAO,CAAH,GAAG,CAAC,SAAD,C;MACb,GAAI,GAAE,GAAY,CAAR,QAAQ,CAAC,SAAD,C;;IAEpB,OAAO,G;GA3EiB;;;;I;EAoF1B,MAA6B,CAAtB,IAAsB,CAAjB,SAAiB,CAAP,MAAO,YAAU,CAACrB,KAAD,E;IACrC,OAAO,IAAa,CAAR,QAAQ,CAAC,IAAQ,CAAH,GAAG,CAAC,KAAD,CAAgB,CAAR,QAAQ,CAAC,KAAD,CAAzB,C;GADO,2D;EAM7B,MAA0B,CAAnB,IAAmB,CAAd,SAAc,CAAJ,GAAI,YAAU,CAAA,E;IAClC,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,CAAC,IAAD,CAAM,IAAP,EAAa,CAAC,IAAD,CAAM,KAAnB,C;GADH;;;;I;EAU1B,MAA0B,CAAnB,IAAmB,CAAd,SAAc,CAAJ,GAAI,YAAU,CAACA,KAAD,E;IAClC,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,IAAU,CAAL,IAAK,GAAE,KAAF,CAAQ,IAAnB,EACI,IAAW,CAAN,KAAM,GAAE,KAAF,CAAQ,KADvB,C;GADH;;;;I;EAW1B,MAAyB,CAAlB,IAAkB,CAAb,SAAa,CAAH,EAAG,YAAU,CAACA,KAAD,E;IACjC,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,IAAU,CAAL,IAAK,GAAE,KAAF,CAAQ,IAAnB,EACI,IAAW,CAAN,KAAM,GAAE,KAAF,CAAQ,KADvB,C;GADJ;;;;I;EAWzB,MAA0B,CAAnB,IAAmB,CAAd,SAAc,CAAJ,GAAI,YAAU,CAACA,KAAD,E;IAClC,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,IAAU,CAAL,IAAK,GAAE,KAAF,CAAQ,IAAnB,EACI,IAAW,CAAN,KAAM,GAAE,KAAF,CAAQ,KADvB,C;GADH;;;;I;EAW1B,MAAgC,CAAzB,IAAyB,CAApB,SAAoB,CAAV,SAAU,YAAU,CAACsB,OAAD,E;IACxC,OAAQ,IAAG,E;IACX,IAAI,OAAQ,IAAG,CAAf,C,CAAkB;A,MAChB,OAAO,I;WACF;A,MACL,IAAIzC,MAAM,IAANA,CAAW,I;MACf,IAAI,OAAQ,GAAE,EAAd,C,CAAkB;A,QAChB,IAAIC,OAAO,IAAPA,CAAY,K;QAChB,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CACvB,GAAI,IAAG,OADgB,EAEtB,IAAK,IAAG,OAAS,GAAG,GAAI,KAAK,EAAG,GAAE,OAFZ,C;aAGtB;A,QACL,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,CAAD,EAAI,GAAI,IAAI,OAAQ,GAAE,EAAtB,C;;;GAZD;;;;I;EAuBhC,MAAiC,CAA1B,IAA0B,CAArB,SAAqB,CAAX,UAAW,YAAU,CAACwC,OAAD,E;IACzC,OAAQ,IAAG,E;IACX,IAAI,OAAQ,IAAG,CAAf,C,CAAkB;A,MAChB,OAAO,I;WACF;A,MACL,IAAIxC,OAAO,IAAPA,CAAY,K;MAChB,IAAI,OAAQ,GAAE,EAAd,C,CAAkB;A,QAChB,IAAID,MAAM,IAANA,CAAW,I;QACf,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CACtB,GAAI,KAAI,OAAS,GAAG,IAAK,IAAI,EAAG,GAAE,OADZ,EAEvB,IAAK,IAAG,OAFe,C;aAGtB;A,QACL,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CACvB,IAAK,IAAI,OAAQ,GAAE,EADI,EAEvB,IAAK,IAAG,CAAE,GAAE,CAAF,GAAM,EAFO,C;;;GAZA;;;;;;I;EA2BjC,MAAyC,CAAlC,IAAkC,CAA7B,SAA6B,CAAnB,kBAAmB,YAAU,CAACyC,OAAD,E;IACjD,OAAQ,IAAG,E;IACX,IAAI,OAAQ,IAAG,CAAf,C,CAAkB;A,MAChB,OAAO,I;WACF;A,MACL,IAAIxC,OAAO,IAAPA,CAAY,K;MAChB,IAAI,OAAQ,GAAE,EAAd,C,CAAkB;A,QAChB,IAAID,MAAM,IAANA,CAAW,I;QACf,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CACtB,GAAI,KAAI,OAAS,GAAG,IAAK,IAAI,EAAG,GAAE,OADZ,EAEvB,IAAK,KAAI,OAFc,C;aAGtB,IAAI,OAAQ,IAAG,EAAf,C,CAAmB;A,QACxB,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,IAAD,EAAO,CAAP,C;aACtB;A,QACL,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,IAAK,KAAK,OAAQ,GAAE,EAArB,EAA0B,CAA1B,C;;;GAdQ;A,EAoBzC,MAA6B,CAAtB,IAAsB,CAAjB,SAAiB,CAAP,MAAO,YAAW,CAACmB,KAAD,E;IACpC,OAAO,KAAM,YAAW,MAAX,CAAkB,IAAK,IAAG,IAAe,CAAV,UAAU,CAAC,KAAD,C;G;EAG1D,MAAsC,CAA/B,IAA+B,CAA1B,SAA0B,CAAhB,eAAgB,GAAE,MAAF,CAAS,IAAT,CAAc,SAAd,CAAwB,O;EAE9D,MAA0B,CAAnB,IAAmB,CAAd,SAAc,CAAJ,GAAI,YAAU,CAAA,E;IAChC,OAAO,IAAQ,CAAH,GAAG,CAAC,MAAD,CAAQ,IAAR,CAAa,GAAb,C;G;EAGnB,MAA0B,CAAnB,IAAmB,CAAd,SAAc,CAAJ,GAAI,YAAU,CAAA,E;IAChC,OAAO,IAAQ,CAAH,GAAG,CAAC,MAAD,CAAQ,IAAR,CAAa,OAAb,C;G;EAGnB,MAA8B,CAAvB,IAAuB,CAAlB,SAAkB,CAAR,OAAQ,YAAU,CAAA,E;IACpC,OAAO,IAAa,CAAR,QAAQ,E;G;EAGxB,MAAgC,CAAzB,IAAyB,CAApB,SAAoB,CAAV,SAAU,YAAU,CAAA,E;IACtC,OAAO,I;G;EAGX,MAAiC,CAA1B,IAA0B,CAArB,SAAqB,CAAX,UAAW,GAAE,MAAF,CAAS,IAAT,CAAc,SAAd,CAAwB,M;EACzD,MAA0B,CAAnB,IAAmB,CAAd,SAAc,CAAJ,GAAI,GAAE,MAAF,CAAS,IAAT,CAAc,SAAd,CAAwB,G;EAElD,MAA8B,CAAvB,IAAuB,CAAlB,SAAkB,CAAR,OAAQ,YAAW,CAACA,KAAD,E;IACrC,OAAO,IAAI,MAAJ,CAAW,MAAX,CAAkB,MAAlB,CAAyB,SAAzB,CAAmC,IAAnC,EAAyC,KAAzC,C;G;EC1zBS;;;;;;IAApB,MAAoB,CAAb,YAAa,YAAW,CAACuB,E,EAAIC,WAAL,E;G;EAG/B,MAA4B,CAArB,oBAAqB,YAAU,CAACC,G,EAAKC,GAAN,E;IAClC,OAAO,G;G;EAGX,MAAoB,CAAb,YAAa,YAAU,CAACA,GAAD,E;IAC1B,IAAIjE,aAAY,CAAA,E;MACZ,CAAE,GAAE,GAAG,E;MACP,OAAO,CAAO,CAAL,KAAK,CAAC,IAAD,EAAO,SAAP,C;K;IAElB,gBAAe,CAAA,E;MACX,OAAO,CAAO,CAAL,KAAK,CAAC,IAAD,EAAO,SAAP,C;K;G;EAItB,MAAgB,CAAT,QAAS,YAAU,CAACkE,IAAD,E;IACtB,gBAAgB,CAACC,MAAD,E;MACZ,OAAO,OAAO,MAAO,KAAI,I;K;G;EAIjC,MAAoB,CAAb,YAAa,YAAW,CAACC,KAAD,E;IAC3B,gBAAgB,CAACD,MAAD,E;MACZ,OAAO,MAAa,CAAN,MAAM,CAAC,MAAD,EAAS,KAAT,C;K;G;EAI5B,MAAc,CAAP,MAAO,YAAW,CAACE,EAAD,E;IACrB,gBAAgB,CAACF,MAAD,E;MACZ,OAAO,MAAO,IAAG,IAAK,IAAG,EAAE,CAAC,MAAD,C;K;G;EAInC,MAAoB,CAAb,YAAa,YAAW,CAAC7E,C,EAAGI,CAAJ,E;IAC3B,gBAAgB,CAACyE,MAAD,E;MACZ,OAAO,CAAC,CAAC,MAAD,CAAS,IAAG,CAAC,CAAC,MAAD,C;K;G;EAI7B,MAA4B,CAArB,oBAAqB,YAAW,CAACG,U,EAAYC,U,EAAYC,IAAzB,E;G;EAGvC,MAAmB,CAAZ,WAAY,YAAU,CAAClD,KAAD,E;IACzB,OAAO,K;G;EAGX,MAAuB,CAAhB,eAAgB,YAAU,CAACmD,SAAD,E;IAC7B,gBAAgB,E;G;EAGpB,MAA2B,CAApB,mBAAoB,YAAU,CAACA,SAAD,E;IACjC,gBAAgB,E;G;EAGpB,MAAyB,CAAlB,iBAAkB,YAAU,CAACA,SAAD,E;IAC/B,gBAAgB,E;G;EAGpB,MAA0B,CAAnB,kBAAmB,YAAU,CAACnD,K,EAAOmD,SAAR,E;IAChC,gBAAgB,E;G;EAGpB,MAAoC,CAA7B,4BAA6B,YAAU,CAACC,aAAD,E;IAC1C,gBAAgB,E;G;2BAGKC,CAAAA,E;IACrB,MAAM,IAAI,KAAJ,CACF,iDAAkD,GAClD,qDAAsD,GACtD,uDAHE,C;G;EAMV,MAAuB,CAAhB,eAAgB,YAAU,CAACb,E,EAAIc,YAAL,E;IAC7B,gBAAe,CAAA,E;MACX,OAAO,Y;K;G;ECjFE;;;IAAjB,MAAiB,CAAV,SAAU,YAAW,CAACtF,C,EAAGI,CAAJ,E;IACxB,IAAImF,QAAQ,OAAO,C;IACnB,IAAI,KAAM,KAAI,QAAd,C,CAAwB;A,MACpB,IAAI,OAAO,CAAE,KAAI,QAAjB,C,CAA2B;A,QACvB,OAAO,MAAsB,CAAf,eAAe,CAAC,CAAD,EAAI,CAAJ,C;;MAEjC,OAAO,MAAyB,CAAlB,kBAAkB,CAAC,CAAD,EAAI,CAAJ,C;;IAEpC,IAAI,KAAM,KAAI,QAAS,IAAG,KAAM,KAAI,SAApC,C,CAA+C;A,MAC3C,OAAO,MAAyB,CAAlB,kBAAkB,CAAC,CAAD,EAAI,CAAJ,C;;IAEpC,OAAO,CAAiB,CAAf,eAAe,CAAC,CAAD,C;G;EAG5B,MAA0B,CAAnB,kBAAmB,YAAW,CAACvF,C,EAAGI,CAAJ,E;IACjC,OAAO,CAAE,GAAE,CAAE,GAAE,EAAF,GAAO,CAAE,GAAE,CAAE,GAAE,CAAF,GAAM,C;G;EAGpC,MAAuB,CAAhB,eAAgB,YAAW,CAACJ,C,EAAGI,CAAJ,E;IAC9B,IAAI,CAAE,GAAE,CAAR,C;MAAW,OAAO,E;IAClB,IAAI,CAAE,GAAE,CAAR,C;MAAW,OAAO,C;IAElB,IAAI,CAAE,KAAI,CAAV,C,CAAa;A,MACT,IAAI,CAAE,KAAI,CAAV,C;QAAa,OAAO,C;MAEpB,IAAIoF,KAAK,CAAE,GAAE,C;MACb,OAAO,EAAG,KAAI,CAAE,GAAE,CAAE,GAAE,CAAF,GAAO,EAAG,GAAE,CAAE,GAAE,EAAF,GAAO,C;;IAG7C,OAAO,CAAE,KAAI,CAAE,GAAG,CAAE,KAAI,CAAE,GAAE,CAAF,GAAM,CAAjB,GAAsB,E;G;EAGzC,MAAe,CAAR,OAAQ,YAAW,CAACxD,KAAD,E;IACtB,OAAO,MAAa,CAAN,MAAM,CAAC,KAAK,GAAC,CAAP,C;G;EAGxB,MAAe,CAAR,OAAQ,YAAW,CAACA,KAAD,E;IACtB,OAAO,MAAa,CAAN,MAAM,CAAC,KAAK,GAAC,CAAP,C;G;EAGxB,MAAY,CAAL,IAAK,GAAE,IAAU,CAAL,IAAK,IAAG,I;EAE3B,MAAoB,CAAb,YAAa,GAAE,I;eAETyD,CAACzF,C,EAAGI,CAAJqF,E;IACT,OAAyB,CAAhB,CAAE,GAAE,YAAY,KAAG,CAAE,GAAE,KAAP,CAAe,GAAe,CAAZ,CAAE,GAAE,KAAQ,KAAG,CAAE,GAAE,CAAP,CAAW,GAAE,C;G;EA6DtE,UA1DO,CAAA,E;IACL,IAAIC,MAAM,IAAI,WAAJ,CAAgB,CAAhB,C;IACV,IAAIC,aAAa,IAAI,YAAJ,CAAiB,GAAjB,C;IACjB,IAAIC,aAAa,IAAI,YAAJ,CAAiB,GAAjB,C;IACjB,IAAIC,WAAW,IAAI,UAAJ,CAAe,GAAf,C;IACf,IAAIC,WAAW,C;IACf,IAAIC,YAAY,C;IAEhB,UAAU,CAAC,CAAD,CAAI,GAAE,EAAF;A,IACd,IAAI,QAAQ,CAAC,QAAD,CAAW,KAAI,CAA3B,C,CAA8B;A,MAC1B,QAAS,GAAE,C;MACX,SAAU,GAAE,C;;IAGhB,MAAoB,CAAb,YAAa,YAAU,CAAC/D,KAAD,E;MAC1B,OAAO,MAAsB,CAAf,eAAe,CAAC,KAAK,CAAC,KAAD,CAAQ,GAAE,GAAF,GAAQ,KAAtB,C;K;IAGjC,MAAuB,CAAhB,eAAgB,YAAU,CAACA,KAAD,E;MAC7B,UAAU,CAAC,CAAD,CAAI,GAAE,K;MAChB,OAAO,MAAoB,CAAb,IAAa,CAAR,QAAQ,CAAC,QAAQ,CAAC,QAAD,CAAT,EAAqB,QAAQ,CAAC,SAAD,CAA7B,C;K;IAG/B,MAAsB,CAAf,cAAe,YAAU,CAACA,KAAD,E;MAC5B,QAAQ,CAAC,QAAD,CAAW,GAAE,KAAF,CAAQ,I;MAC3B,QAAQ,CAAC,SAAD,CAAY,GAAE,KAAF,CAAQ,K;MAC5B,OAAO,UAAU,CAAC,CAAD,C;K;IAGrB,MAAmB,CAAZ,WAAY,YAAU,CAACA,KAAD,E;MACzB,OAAO,MAAqB,CAAd,cAAc,CAAC,KAAK,CAAC,KAAD,CAAQ,GAAE,GAAF,GAAQ,KAAtB,C;K;IAGhC,MAAsB,CAAf,cAAe,YAAU,CAACA,KAAD,E;MAC5B,UAAU,CAAC,CAAD,CAAI,GAAE,K;MAChB,OAAO,QAAQ,CAAC,CAAD,C;K;IAGnB,MAAqB,CAAd,aAAc,YAAU,CAACA,KAAD,E;MAC3B,QAAQ,CAAC,CAAD,CAAI,GAAE,K;MACd,OAAO,UAAU,CAAC,CAAD,C;KAFA;A,IAMrB,MAAqB,CAAd,aAAc,YAAU,CAACA,KAAD,E;MAC3B,UAAU,CAAC,CAAD,CAAI,GAAE,K;MAChB,OAAO,QAAQ,CAAC,SAAD,CAAY,GAAE,a;K;IAGjC,MAAsB,CAAf,cAAe,YAAU,CAACjB,GAAD,E;MAC5B,IAAc,CAAT,GAAI,GAAE,CAAG,MAAI,GAAlB,C,CAAuB;A,QACnB,OAAO,GAAI,GAAE,C;aAEZ;A,QACD,UAAU,CAAC,CAAD,CAAI,GAAE,G;QAChB,OAAsC,CAA9B,QAAQ,CAAC,SAAD,CAAY,GAAE,EAAG,GAAE,CAAG,IAAE,QAAQ,CAAC,QAAD,CAAW,GAAE,C;;K;GAGvE,G;EAEF,MAAqB,CAAd,aAAc,YAAU,CAACiF,CAAD,E;IAC3B,OAAO,CAAE,IAAG,IAAK,GAAE,CAAF,GAAM,MAAe,CAAR,QAAQ,E;G;;;;IC7G1C,IAAI,OAAO,MAAP,CAAc,SAAd,CAAwB,UAAW,KAAI,WAA3C,C,CAAwD;A,IACpD,MAAqB,CAAd,cAAc,CAAC,MAAD,CAAQ,SAAR,EAAmB,YAAnB,EAAiC,CAClD,KADkD,WAClC,CAACC,Y,EAAcC,QAAf,E;MACZ,QAAS,GAAE,QAAS,IAAG,C;MACvB,OAAO,IAAgB,CAAX,WAAW,CAAC,YAAD,EAAe,QAAf,CAAyB,KAAI,Q;KAHN,CAAjC,C;;EAOzB,IAAI,OAAO,MAAP,CAAc,SAAd,CAAwB,QAAS,KAAI,WAAzC,C,CAAsD;A,IAClD,MAAqB,CAAd,cAAc,CAAC,MAAD,CAAQ,SAAR,EAAmB,UAAnB,EAA+B,CAChD,KADgD,WAChC,CAACD,Y,EAAcC,QAAf,E;MACZ,IAAIC,gBAAgB,IAAa,CAAR,QAAQ,E;MACjC,IAAI,QAAS,KAAI,SAAU,IAAG,QAAS,GAAE,aAAF,CAAgB,MAAvD,C,CAA+D;A,QAC3D,QAAS,GAAE,aAAF,CAAgB,M;;MAE7B,QAAS,IAAG,YAAH,CAAgB,M;MACzB,IAAIC,YAAY,aAAqB,CAAP,OAAO,CAAC,YAAD,EAAe,QAAf,C;MACrC,OAAO,SAAU,KAAI,EAAG,IAAG,SAAU,KAAI,Q;KARG,CAA/B,C;;;EAazB,IAAI,OAAO,IAAP,CAAY,IAAK,KAAI,WAAzB,C,CAAsC;A,IAClC,IAAU,CAAL,IAAK,YAAU,CAACJ,CAAD,E;MAChB,CAAE,GAAE,CAAC,CAAH;A,MACF,IAAI,CAAE,KAAI,CAAE,IAAG,KAAK,CAAC,CAAD,CAApB,C,CAAyB;A,QACrB,OAAO,MAAM,CAAC,CAAD,C;;MAEjB,OAAO,CAAE,GAAE,CAAE,GAAE,CAAF,GAAM,E;K;;EAG3B,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,IACnC,IAAW,CAAN,KAAM,YAAU,CAACA,CAAD,E;MACjB,IAAI,KAAK,CAAC,CAAD,CAAT,C,CAAc;A,QACV,OAAO,G;;MAEX,IAAI,CAAE,GAAE,CAAR,C,CAAW;A,QACP,OAAO,IAAU,CAAL,KAAK,CAAC,CAAD,C;;MAErB,OAAO,IAAS,CAAJ,IAAI,CAAC,CAAD,C;K;;EAuKtB,UAnKO,CAAA,E;IACL,IAAIK,UAAU,qB;IACd,IAAIC,iBAAiB,IAAS,CAAJ,IAAI,CAAC,OAAD,C;IAC9B,IAAIC,iBAAiB,IAAS,CAAJ,IAAI,CAAC,cAAD,C;IAC9B,IAAIC,uBAAuB,CAAC,GAAC,c;IAC7B,IAAIC,uBAAuB,CAAC,GAAC,c;IAE7B,IAAI,OAAO,IAAP,CAAY,IAAK,KAAI,WAAzB,C,CAAsC;A,MAClC,IAAU,CAAL,IAAK,YAAU,CAACT,CAAD,E;QAChB,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,cAAlB,C,CAAkC;A,UAC9B,IAAIzF,SAAS,C;UACb,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,cAAlB,C,CAAkC;A,YAC9B,MAAO,IAAI,CAAE,GAAE,CAAE,GAAE,CAAG,GAAE,C;;UAE5B,OAAO,M;eACJ;A,UACH,IAAImG,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,C;UAChB,IAAIC,KAAK,CAAE,GAAE,C;UACb,IAAI,CAAC,QAAQ,CAAC,CAAD,CAAb,C;YAAkB,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAE,GAAE,IAAF,CAAO,GAAV,C;UACjC,IAAI,CAAC,QAAQ,CAAC,EAAD,CAAb,C;YAAmB,OAAO,CAAC,IAAQ,CAAH,GAAG,CAAC,CAAC,CAAE,GAAE,IAAF,CAAO,GAAX,C;UACnC,OAAgB,CAAR,CAAE,GAAE,EAAI,IAAE,C;;O;;IAI9B,IAAI,OAAO,IAAP,CAAY,IAAK,KAAI,WAAzB,C,CAAsC;A,MAClC,IAAU,CAAL,IAAK,YAAU,CAACX,CAAD,E;QAChB,IAAIU,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,C;QAChB,IAAIC,KAAK,CAAE,GAAE,C;QACb,IAAI,CAAC,QAAQ,CAAC,CAAD,CAAI,IAAG,CAAC,QAAQ,CAAC,EAAD,CAA7B,C;UAAmC,OAAO,IAAQ,CAAH,GAAG,CAAC,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,IAAF,CAAO,GAApB,C;QAClD,OAAgB,CAAR,CAAE,GAAE,EAAI,IAAE,C;O;;IAI1B,IAAI,OAAO,IAAP,CAAY,IAAK,KAAI,WAAzB,C,CAAsC;A,MAClC,IAAU,CAAL,IAAK,YAAU,CAACX,CAAD,E;QAChB,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,cAAlB,C,CAAkC;A,UAC9B,IAAIzF,SAAS,C;UACb,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,cAAlB,C,CAAkC;A,YAC9B,MAAO,IAAI,CAAE,GAAE,CAAE,GAAE,CAAG,GAAE,C;;UAE5B,OAAO,M;eAEN;A,UACD,IAAIP,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAC,CAAF,CAAhB,EAAsBI,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAC,CAAF,C;UAClC,OAAO,CAAE,KAAI,QAAS,GAAE,CAAF,GAAM,CAAE,KAAI,QAAS,GAAE,EAAF,GAAe,CAAP,CAAE,GAAE,CAAG,KAAG,CAAE,GAAE,CAAP,C;;O;;;;IAQtE,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,MACnC,IAAIwG,iBAAgB,CAACZ,CAAD,E;QAChB,IAAI,CAAE,IAAG,CAAC,cAAV,C,CACA;A,UACI,IAAI,CAAE,GAAE,oBAAR,C,CACA;A,YACI,IAAI,CAAE,GAAE,oBAAR,C,CACA;A,cAEI;qBAAO,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,IAAF,CAAO,G;mBAG9B;A,cAEI;qBAAO,IAAQ,CAAH,GAAG,CAAC,CAAE,GAAE,CAAE,GAAG,CAAE,IAAG,CAAE,GAAE,CAAP,CAAZ,C;;iBAIvB;A,YACI,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAE,GAAE,IAAS,CAAJ,IAAI,CAAC,CAAE,GAAE,CAAE,GAAE,CAAT,CAAd,C;;eAGlB,IAAI,CAAE,IAAG,CAAC,cAAV,C,CACL;A,UACI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAF,C;eAGjB;A,UAEI;cAAIzF,SAAS,C;UACb,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,IAAG,cAAnB,C,CACA;A,YACI,IAAIsG,KAAK,CAAE,GAAE,CAAE,GAAE,CAAjB;A,YAEA,MAAO,IAAG,EAAG,GAAE,C;;UAEnB,OAAO,M;;O;MAGf,IAAW,CAAN,KAAM,GAAE,K;;IAEjB,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,MACnC,IAAW,CAAN,KAAM,YAAU,CAACb,CAAD,E;QACjB,IAAI,CAAE,GAAE,CAAR,C,CACA;A,UACI,OAAO,G;eAEN,IAAI,CAAE,GAAE,CAAE,IAAG,cAAb,C,CACL;A,UACI,IAAI,CAAE,GAAE,oBAAR,C,CACA;A,YAEI;mBAAO,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,IAAF,CAAO,G;iBAG9B;A,YACI,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAE,GAAE,IAAS,CAAJ,IAAI,CAAC,CAAE,GAAE,CAAE,GAAE,CAAT,CAAd,C;;eAIvB;A,UACI,IAAIU,IAAI,IAAS,CAAJ,IAAI,CAAC,CAAE,GAAE,CAAL,CAAjB;A,UAEA,IAAInG,SAAS,C;UACb,IAAI,CAAE,IAAG,cAAT,C,CACA;A,YACI,IAAIuG,KAAK,CAAE,GAAE,CAAE,GAAE,CAAjB;A,YAEA,MAAO,IAAG,EAAG,GAAE,E;;UAGnB,OAAO,IAAS,CAAJ,IAAI,CAAC,CAAD,CAAI,GAAE,M;;O;;IAIlC,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,MACnC,IAAW,CAAN,KAAM,YAAU,CAACd,CAAD,E;QACjB,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,cAAlB,C,CAAkC;A,UAC9B,IAAIzF,SAAS,C;UACb,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,cAAlB,C,CAAkC;A,YAC9B,MAAO,IAAI,CAAE,GAAE,CAAE,GAAE,CAAG,GAAE,C;;UAE5B,OAAO,M;;QAEX,OAAO,IAAQ,CAAH,GAAG,CAAS,CAAP,CAAE,GAAE,CAAG,KAAG,CAAE,GAAE,CAAP,CAAT,CAAoB,GAAE,C;O;;IAG7C,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,MACnC,IAAW,CAAN,KAAM,YAAU,CAACyF,CAAD,E;QACjB,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,cAAlB,C,CAAkC;A,UAC9B,IAAIe,KAAK,CAAE,GAAE,C;UACb,IAAIF,KAAK,EAAG,GAAE,C;UACd,IAAIG,KAAK,EAAG,GAAE,CAAd;A,UAEA,OAAQ,CAAC,EAAG,GAAE,CAAE,GAAE,EAAG,GAAE,CAAE,GAAE,EAAG,GAAE,CAAE,GAAE,C;;QAExC,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAE,GAAE,CAAL,C;O;;IAGvB,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,MACnC,IAAW,CAAN,KAAM,YAAU,CAAChB,CAAD,E;QACjB,IAAI,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,cAAlB,C,CAAkC;A,UAC9B,IAAIe,KAAK,CAAE,GAAE,C;UACb,IAAIF,KAAK,EAAG,GAAE,C;UACd,IAAIG,KAAK,EAAG,GAAE,CAAd;A,UAEA,OAAQ,EAAG,GAAE,EAAG,GAAE,EAAG,GAAE,CAAE,GAAE,EAAG,GAAE,CAAE,GAAE,C;;QAExC,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,C;O;;GAG/B,G;EACF,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,IACnC,IAAW,CAAN,KAAM,YAAU,CAAA,E;MACjB,IAAIN,IAAI,C;MACR,IAAIO,SAAS,SAATA,CAAmB,M;MAEvB,KAAK,IAAI5G,IAAI,CAAb,EAAgB,CAAE,GAAE,MAApB,EAA4B,CAAC,EAA7B,C,CAAiC;A,QAC7B,IAAI,SAAS,CAAC,CAAD,CAAI,KAAI,QAAS,IAAG,SAAS,CAAC,CAAD,CAAI,KAAI,CAAC,QAAnD,C,CAA6D;A,UACzD,OAAO,Q;;QAEX,CAAE,IAAG,SAAS,CAAC,CAAD,CAAI,GAAE,SAAS,CAAC,CAAD,C;;MAEjC,OAAO,IAAS,CAAJ,IAAI,CAAC,CAAD,C;K;;EAGxB,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,IACnC,IAAW,CAAN,KAAM,YAAU,CAAC2F,CAAD,E;MACjB,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,IAAF,CAAO,M;K;;EAGlC,IAAI,OAAO,IAAP,CAAY,IAAK,KAAI,WAAzB,C,CAAsC;A,IAClC,IAAU,CAAL,IAAK,YAAU,CAACA,CAAD,E;MAChB,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAD,CAAI,GAAE,IAAF,CAAO,K;K;;EAGlC,IAAI,OAAO,IAAP,CAAY,KAAM,KAAI,WAA1B,C,CAAuC;A,IACnC,IAAW,CAAN,KAAM,GAQT,SARoB,CAACkB,G,EAAKC,GAAN,E;MAClB,gBAAe,CAACnB,CAAD,E;QACX,IAAIoB,SAAS,CAAE,KAAI,C;QACnB,IAAI,MAAO,KAAI,CAAf,C,CAAkB;A,UACd,OAAO,E;;QAEX,OAAO,EAAG,IAAG,GAAG,CAAC,MAAD,CAAS,GAAE,GAAI,GAAE,CAAvB,CAA0B,GAAE,CAAtC;A,O;KAEN,CAAC,IAAD,CAAM,GAAN,EAAW,IAAX,CAAgB,GAAhB,C;;;EAIN,IAAI,OAAO,WAAP,CAAmB,MAAO,KAAI,WAAlC,C,CAA+C;A,IAC3C,WAAmB,CAAP,MAAO,YAAU,CAACpH,CAAD,E;MACzB,OAAO,CAAE,IAAG,IAAK,IAAG,CAAY,CAAV,SAAU,IAAG,IAAK,IAAG,CAAsB,CAApB,SAAoB,CAAV,SAAU,KAAI,SAAJ,CAAc,SAAd,CAAwB,S;K;;EAIjG,IAAI,OAAO,KAAP,CAAa,SAAb,CAAuB,IAAK,KAAI,WAApC,C,CAAiD;A,IAExB;IAArB,MAAqB,CAAd,cAAc,CAAC,KAAD,CAAO,SAAP,EAAkB,MAAlB,EAA0B,CAC3C,KAD2C,WAC3B,CAACgC,KAAD,E;;MAGZ,IAAI,IAAK,IAAG,IAAZ,C,CAAkB;A,QACd,MAAM,IAAI,SAAJ,CAAc,6BAAd,C;;MAGV,IAAIqF,IAAI,MAAM,CAAC,IAAD,CAAd;A,MAGA,IAAIC,MAAM,CAAS,CAAP,MAAO,KAAI,CAAvB;A,MAGA,IAAIC,QAAQ,SAAS,CAAC,CAAD,C;MACrB,IAAIC,gBAAgB,KAAM,IAAG,CAA7B;A,MAGA,IAAIC,IAAI,aAAc,GAAE,CAAE,GAClB,IAAQ,CAAH,GAAG,CAAC,GAAI,GAAE,aAAP,EAAsB,CAAtB,CADU,GAElB,IAAQ,CAAH,GAAG,CAAC,aAAD,EAAgB,GAAhB,CAFhB;A,MAKA,IAAIC,MAAM,SAAS,CAAC,CAAD,C;MACnB,IAAIC,cAAc,GAAI,KAAI,SAAU,GAClB,GADkB,GACZ,GAAI,IAAG,CAD/B;A,MAIA,IAAIC,aAAa,WAAY,GAAE,CAAE,GAChB,IAAQ,CAAH,GAAG,CAAC,GAAI,GAAE,WAAP,EAAoB,CAApB,CADQ,GAEhB,IAAQ,CAAH,GAAG,CAAC,WAAD,EAAc,GAAd,CAFzB;A,MAKA,OAAO,CAAE,GAAE,UAAX,C,CAAuB;A,QACnB,CAAC,CAAC,CAAD,CAAI,GAAE,K;QACP,CAAC,E;;;MAIL,OAAO,C;KAvCgC,CAA1B,C;;EA4HvB,UAhFO,CAAA,E;4BACmBC,CAACC,M,EAAQb,MAATY,E;MACpB,IAAI,MAAO,GAAE,CAAb,C;QAAgB,OAAO,IAAQ,CAAH,GAAG,CAAC,CAAD,EAAI,MAAO,GAAE,MAAb,C;MAC/B,OAAO,IAAQ,CAAH,GAAG,CAAC,MAAD,EAAS,MAAT,C;K;4BAEKE,CAACC,K,EAAON,GAARK,E;MACpB,IAAI,OAAO,GAAI,KAAI,WAAnB,C,CAAgC;A,QAC5B,GAAI,GAAE,IAAF,CAAO,M;;MAEf,KAAM,GAAE,eAAe,CAAC,KAAM,IAAG,CAAV,EAAa,IAAb,CAAkB,MAAlB,C;MACvB,GAAI,GAAE,IAAQ,CAAH,GAAG,CAAC,KAAD,EAAQ,eAAe,CAAC,GAAD,EAAM,IAAN,CAAW,MAAX,CAAvB,C;MACd,OAAO,IAAI,IAAJ,CAAS,WAAT,CAAqB,IAAa,CAAR,QAAQ,CAAC,KAAD,EAAQ,GAAR,CAAlC,C;K;IAGX,IAAIE,SAAS,CAAC,SAAD,EAAY,UAAZ,EAAwB,WAAxB,EAAqC,UAArC,EAAiD,YAAjD,EAA+D,YAA/D,C;IACb,KAAK,IAAI5H,IAAI,CAAb,EAAgB,CAAE,GAAE,MAAF,CAAS,MAA3B,EAAmC,EAAE,CAArC,C,CAAwC;A,MACpC,IAAI6H,aAAa,MAAM,CAAC,CAAD,C;MACvB,IAAI,OAAO,UAAP,CAAkB,SAAlB,CAA4B,IAAK,KAAI,WAAzC,C,CAAsD;A,QAClD,MAAqB,CAAd,cAAc,CAAC,UAAD,CAAY,SAAZ,EAAuB,MAAvB,EAA+B,CAChD,KADgD,EACzC,KADyC,CACnC,SADmC,CACzB,IADyB,CAA/B,C;;MAIzB,IAAI,OAAO,UAAP,CAAkB,SAAlB,CAA4B,KAAM,KAAI,WAA1C,C,CAAuD;A,QACnD,MAAqB,CAAd,cAAc,CAAC,UAAD,CAAY,SAAZ,EAAuB,OAAvB,EAAgC,CACjD,KADiD,EAC1C,eAD0C,CAAhC,C;;;;IAO7B,I;MACyB,UAAZ,CAAA,E;OAAY,CAAL,KAAK,CAAC,IAAD,EAAO,IAAI,UAAJ,CAAe,CAAf,CAAP,E;;MAErB,IAAIC,QAAQ,QAARA,CAAiB,SAAjBA,CAA2B,K;MAC/B,MAAqB,CAAd,cAAc,CAAC,QAAD,CAAU,SAAV,EAAqB,OAArB,EAA8B,CAC/C,KAD+C,WAChC,CAACC,I,EAAM5H,KAAP,E;QACX,OAAO,KAAU,CAAJ,IAAI,CAAC,IAAD,EAAO,IAAP,EAAa,EAAa,CAAV,KAAU,CAAJ,IAAI,CAAC,KAAD,CAA1B,C;OAF0B,CAA9B,C;;;IASzB,KAAK,IAAIH,IAAI,CAAb,EAAgB,CAAE,GAAE,MAAF,CAAS,MAA3B,EAAmC,EAAE,CAArC,C,CAAwC;A,MACpC,IAAI6H,aAAa,MAAM,CAAC,CAAD,C;MACvB,IAAI,OAAO,UAAP,CAAkB,SAAlB,CAA4B,GAAI,KAAI,WAAxC,C,CAAqD;A,QACjD,MAAqB,CAAd,cAAc,CAAC,UAAD,CAAY,SAAZ,EAAuB,KAAvB,EAA8B,CAC/C,KAD+C,WAChC,CAACG,Q,EAAUD,IAAX,E;UACX,OAAO,EAAa,CAAV,KAAU,CAAJ,IAAI,CAAC,IAAD,CAAU,CAAH,GAAG,CAAC,QAAD,EAAW,IAAX,C;SAFa,CAA9B,C;;;;;IAU7B,IAAIE,gCAAgC,CAACtI,C,EAAGI,CAAJ,E;MAChC,IAAI,CAAE,GAAE,CAAR,C;QAAW,OAAO,E;MAClB,IAAI,CAAE,GAAE,CAAR,C;QAAW,OAAO,C;MAElB,IAAI,CAAE,KAAI,CAAV,C,CAAa;A,QACT,IAAI,CAAE,KAAI,CAAV,C;UAAa,OAAO,C;QAEpB,IAAIoF,KAAK,CAAE,GAAE,C;QACb,OAAO,EAAG,KAAI,CAAE,GAAE,CAAE,GAAE,CAAF,GAAO,EAAG,GAAE,CAAE,GAAE,EAAF,GAAO,C;;MAG7C,OAAO,CAAE,KAAI,CAAE,GAAG,CAAE,KAAI,CAAE,GAAE,CAAF,GAAM,CAAjB,GAAsB,E;K;IAGzC,KAAK,IAAInF,IAAI,CAAb,EAAgB,CAAE,GAAE,MAAF,CAAS,MAA3B,EAAmC,EAAE,CAArC,C,CAAwC;A,MACpC,IAAI6H,aAAa,MAAM,CAAC,CAAD,C;MACvB,IAAI,OAAO,UAAP,CAAkB,SAAlB,CAA4B,IAAK,KAAI,WAAzC,C,CAAsD;A,QAClD,MAAqB,CAAd,cAAc,CAAC,UAAD,CAAY,SAAZ,EAAuB,MAAvB,EAA+B,CAChD,KADgD,WACjC,CAACK,eAAD,E;UACX,OAAO,KAAyB,CAAnB,SAAmB,CAAT,IAAS,CAAJ,IAAI,CAAC,IAAD,EAAO,eAAgB,IAAG,oBAA1B,C;SAFY,CAA/B,C;;;GAO/B,G;ECxXU;;;IAAZ,MAAY,CAAL,IAAK,GAAE,CACV,KADU,EACH,OADG,EAEV,SAFU,EAEC,WAFD,EAGV,MAHU,EAGF,QAHE,C;EAMd,MAAkB,CAAX,UAAW,YAAW,CAACC,U,EAAY1D,K,EAAO2D,YAApB,E;IACzB,IAAIC,qBAAqB,MAA+B,CAAxB,wBAAwB,CAAC,KAAD,EAAQ,YAAR,C;IACxD,IAAI,kBAAmB,IAAG,IAAK,IAAG,kBAAuB,CAAJ,GAAI,IAAG,IAA5D,C,CAAkE;A,MAC9D,OAAO,kBAA2B,CAAR,GAAQ,CAAJ,IAAI,CAAC,UAAD,C;;IAGtC,kBAAmB,GAAE,MAA+B,CAAxB,wBAAwB,CAAC,UAAD,EAAa,YAAb,C;IACpD,IAAI,kBAAmB,IAAG,IAAK,IAAG,OAAQ,IAAG,kBAA7C,C,CAAiE;A,MAC7D,OAAO,UAAU,CAAC,YAAD,C;;IAGrB,OAAO,MAAiB,CAAV,UAAU,CAAC,UAAD,EAAa,MAAqB,CAAd,cAAc,CAAC,KAAD,CAAlC,EAA2C,YAA3C,C;G;EAG5B,MAAkB,CAAX,UAAW,YAAW,CAACF,U,EAAY1D,K,EAAO2D,Y,EAAczG,KAAlC,E;IACzB,IAAI0G,qBAAqB,MAA+B,CAAxB,wBAAwB,CAAC,KAAD,EAAQ,YAAR,C;IACxD,IAAI,kBAAmB,IAAG,IAAK,IAAG,kBAAuB,CAAJ,GAAI,IAAG,IAA5D,C,CAAkE;A,MAC9D,kBAA2B,CAAR,GAAQ,CAAJ,IAAI,CAAC,UAAD,EAAa,KAAb,C;MAC3B,M;;IAGJ,kBAAmB,GAAE,MAA+B,CAAxB,wBAAwB,CAAC,UAAD,EAAa,YAAb,C;IACpD,IAAI,kBAAmB,IAAG,IAAK,IAAG,OAAQ,IAAG,kBAA7C,C,CAAiE;A,MAC7D,UAAU,CAAC,YAAD,CAAe,GAAE,K;MAC3B,M;;IAGJ,MAAiB,CAAV,UAAU,CAAC,UAAD,EAAa,MAAqB,CAAd,cAAc,CAAC,KAAD,CAAlC,EAA2C,YAA3C,EAAyD,KAAzD,C;G;qCAGcC,CAACC,I,EAAMC,KAAPF,E;IAC/B,IAAI,IAAK,KAAI,KAAb,C;MAAoB,OAAO,I;IAE3B,IAAIG,WAAW,IAAXA,CAAgB,U;IACpB,IAAI,QAAS,IAAG,IAAhB,C,CAAsB;A,MAClB,IAAIC,aAAa,QAAbA,CAAsB,U;MAC1B,KAAK,IAAI1I,IAAI,CAAb,EAAgB,CAAE,GAAE,UAAF,CAAa,MAA/B,EAAuC,CAAC,EAAxC,C,CAA4C;A,QACxC,IAAI,0BAA0B,CAAC,UAAU,CAAC,CAAD,CAAX,EAAgB,KAAhB,CAA9B,C,CAAsD;A,UAClD,OAAO,I;;;;IAKnB,IAAI2I,iBAAiB,IAAe,CAAV,SAAU,IAAG,IAAK,GAAE,MAAqB,CAAd,cAAc,CAAC,IAAD,CAAM,SAAN,CAAvB,GAA0C,I;IACtF,IAAIC,mBAAmB,cAAe,IAAG,IAAK,GAAE,cAAF,CAAiB,WAAjB,GAA+B,I;IAC7E,OAAO,gBAAiB,IAAG,IAAK,IAAG,0BAA0B,CAAC,gBAAD,EAAmB,KAAnB,C;G;EASnD;;;;;IAAd,MAAc,CAAP,MAAO,YAAW,CAACpE,M,EAAQC,KAAT,E;IACrB,IAAI,KAAM,KAAI,MAAd,C,CAAsB;A,MAClB,QAAQ,OAAO,MAAf,C;aACS,Q;aACA,Q;aACA,S;aACA,U;UACD,OAAO,I;;UAEP,OAAO,MAAO,YAAW,M;;;IAIrC,IAAI,MAAO,IAAG,IAAK,IAAG,KAAM,IAAG,IAAK,KAAI,OAAO,MAAO,KAAI,QAAS,IAAG,OAAO,MAAO,KAAI,UAApD,CAApC,C,CAAqG;A,MACjG,OAAO,K;;IAGX,IAAI,OAAO,KAAM,KAAI,UAAW,IAAG,MAAO,YAAW,KAArD,C,CAA4D;A,MACxD,OAAO,I;;IAGX,IAAIoE,QAAQ,MAAqB,CAAd,cAAc,CAAC,KAAD,C;IACjC,IAAIC,cAAc,KAAM,IAAG,IAAK,GAAE,KAAF,CAAQ,WAAR,GAAsB,I;IACtD,IAAI,WAAY,IAAG,IAAK,IAAG,YAAa,IAAG,WAA3C,C,CAAwD;A,MACpD,IAAIL,WAAW,WAAXA,CAAuB,U;MAC3B,IAAI,QAAc,CAAL,IAAK,KAAI,MAAJ,CAAW,IAAX,CAAgB,MAAlC,C,CAA0C;A,QACtC,OAAO,MAAO,KAAI,K;;;IAI1B,IAAIM,gBAAgB,KAAhBA,CAAsB,UAA1B;A,IAGA,IAAI,aAAc,IAAG,IAArB,C,CAA2B;A,MACvB,OAAO,MAAO,YAAW,K;;IAG7B,IAAI,aAAmB,CAAL,IAAK,KAAI,MAAJ,CAAW,IAAX,CAAgB,SAAU,IAAG,MAAmB,CAAZ,WAAY,IAAG,IAA1E,C,CAAgF;A,MAC5E,OAAO,0BAA0B,CAAC,MAAD,CAAQ,WAAR,EAAqB,KAArB,C;;IAGrC,OAAO,K;G;EAGX,MAAgB,CAAT,QAAS,YAAW,CAACpJ,CAAD,E;IACvB,OAAO,OAAO,CAAE,IAAG,QAAS,IAAG,CAAE,YAAW,MAAX,CAAkB,I;G;EAGvD,MAAc,CAAP,MAAO,YAAW,CAACgC,KAAD,E;IACrB,OAAO,KAAM,YAAW,MAAX,CAAkB,S;G;EAGnC,MAAoB,CAAb,YAAa,YAAW,CAACA,KAAD,E;IAC3B,IAAI4C,OAAO,OAAO,K;IAElB,OAAO,IAAK,KAAI,QAAS,IAClB,IAAK,KAAI,SAAU,IACnB,MAAe,CAAR,QAAQ,CAAC,KAAD,CAAQ,IACvB,MAAa,CAAN,MAAM,CAAC,KAAD,EAAQ,MAAR,CAAe,MAAf,CAAsB,UAAtB,C;G;EAGxB,MAAsB,CAAf,cAAe,YAAW,CAAC5C,KAAD,E;IAC7B,OAAO,OAAO,KAAM,KAAI,QAAS,IAAG,MAAa,CAAN,MAAM,CAAC,KAAD,EAAQ,MAAR,CAAe,MAAf,CAAsB,YAAtB,C;G;;;;;;;;;yBCnDV,I;;;;iBCrE3C,CAAA,E;MAkBI,4B;MAjBA,aAA6C,E;MAC7C,gBAAgD,C;K;qFAG5C,CAAA,E;MAAQ,iB;K;wFAGR,CAAA,E;MAAQ,oB;K;8CAEZ,C,KAAA,E;MAAyC,OAAQ,+BAAR,OAAQ,EAAU,KAAV,CAAgB,OAAhB,C;K;qCAEjD,C,KAAA,E;MAAmC,gBAAS,K;K;uCAE5C,CAAA,E;MAA+B,OAAG,MAAH,kBAA8B,IAA9B,C;K;uCAE/B,CAAA,E;MAA0B,gB;K;2BAE1B,CAAA,E;MAAA,8B;K;;;uCAAA,CAAA,E;MAAA,qC;QAAA,oB;;MAAA,8B;K;;qBDfJ,C,eAAA,E;MAC4C,oBAAa,MAAS,IAAT,CAAb,EAA6B,SAA7B,C;K;gEAE5C,uBAAA,E;MAAA,mB;MAAA,iB,UAAA,E;QAC2D,YAAa,QAAS,IAAT,C;QAIvD,Q;QAAA,aAAM,MAAN,GAAa,CAAb,I;QAAb,aAAU,CAAV,iB;UACI,MAAM,CAAN,IALgF,IAKrE,CAAK,CAAL,C;;QALwC,OAOhD,K;O;KARX,C;yEAGA,C,WAAA,E;MAEiB,Q;MAAA,aAAM,MAAN,GAAa,CAAb,I;MAAb,aAAU,CAAV,iB;QACI,MAAM,CAAN,IAAW,KAAK,CAAL,C;;MAEf,OAAO,K;K;yBAGX,C,UAAA,E;MAIiB,IAAN,I;MAFP,aAAsB,MAAe,IAAf,C;MACtB,gBAAkB,c;MAEd,IADS,IACT,mBADS,IACT,EAAM,IAAN,E;QAAc,oBAAa,MAAb,EAAqB,KAArB,C;WACd,WAFS,IAET,S;QAAS,a;;QAZA,U;QAAA,SAaqB,MAbrB,CAAM,MAAN,GAAa,CAAb,I;QAAb,aAAU,CAAV,mB;UAakC,MAZ9B,CAAM,CAAN,IAYsC,IAZ3B,CAAK,CAAL,C;;QAYH,OAAsB,M;;MAHlC,W;K;2EAOJ,uBAAA,E;MAAA,iC;MAAA,iB,UAAA,E;QACoF,YAAa,aAAa,IAAb,EAAmB,KAAnB,C;QAlBhF,Q;QAAA,aAAM,MAAN,GAAa,CAAb,I;QAAb,aAAU,CAAV,iB;UACI,MAAM,CAAN,IAiBoH,IAjBzG,CAAK,CAAL,C;;QAiBiE,OAfzE,K;O;KAcX,C;sBAGA,C,UAAA,E;MAKiB,IAAN,I;MAFP,aAAa,IAAO,WAAP,CAAmB,IAAnB,C;MACb,gBAAkB,W;MAEd,IADS,IACT,mBADS,IACT,EAAM,IAAN,YADS,IACT,EAAY,KAAZ,E;QAAqB,a;;QA1BZ,U;QAAA,SA2BkB,MA3BlB,CAAM,MAAN,GAAa,CAAb,I;QAAb,aAAU,CAAV,mB;UA2B+B,MA1B3B,CAAM,CAAN,IA0BmC,IA1BxB,CAAK,CAAL,C;;QA0BH,OAAmB,M;;MAF/B,W;K;qEAMJ,uBAAA,E;MAAA,2B;MAAA,gC;MAAA,iB,UAAA,E;QAGiB,Q;QADb,YAAY,UAAU,IAAV,EAAgB,IAAhB,C;QACC,aAAM,MAAN,GAAa,CAAb,I;QAAb,aAAU,CAAV,iB;UACI,YACY,eAAK,CAAL,E;UACT,KAAK,CAAC,CAAD,CAAR,GAAc,K;;QAElB,OAAO,K;O;KARX,C;mFAWA,uBAAA,E;MAAA,mB;MAAA,gC;MAAA,iB,UAAA,E;QAGiB,Q;QADb,YAAY,QAAY,IAAZ,C;QACC,aAAM,MAAN,GAAa,CAAb,I;QAAb,aAAU,CAAV,iB;UACI,YACY,eAAK,CAAL,E;UACT,KAAK,CAAC,CAAD,CAAR,GAAc,K;;QAElB,OAAO,K;O;KARX,C;sBAWA,C,UAAA,E;MAIiB,IAAN,I;MAFP,aAAsB,MAAY,IAAZ,C;MACtB,gBAAkB,W;MAEd,IADS,IACT,mBADS,IACT,EAAM,IAAN,E;QAAc,oBAAa,MAAb,K;WACd,WAFS,IAET,S;QAAS,a;;QA3DA,U;QAAA,SA4DkB,MA5DlB,CAAM,MAAN,GAAa,CAAb,I;QAAb,aAAU,CAAV,mB;UA4D+B,MA3D3B,CAAM,CAAN,IA2DmC,IA3DxB,CAAK,CAAL,C;;QA2DH,OAAmB,M;;MAH/B,W;K;qEAOJ,uBAAA,E;MAAA,2B;MAAA,iB,UAAA,E;QAC2E,YAAa,UAAU,IAAV,EAAgB,KAAhB,C;QAjEvE,Q;QAAA,aAAM,MAAN,GAAa,CAAb,I;QAAb,aAAU,CAAV,iB;UACI,MAAM,CAAN,IAgEwG,IAhE7F,CAAK,CAAL,C;;QAgEwD,OA9DhE,K;O;KA6DX,C;yBAGA,C,gBAAA,E;MACiB,Q;MAAA,aAAM,MAAN,GAAa,CAAb,I;MAAb,aAAU,CAAV,iB;QACI,MAAM,CAAN,IAAW,S;;MAEf,OAAO,K;K;kCElFX,CAAA,E;MAAA,qC;MAEI,iBAC8B,Q;MAE9B,iBAC8B,sB;MAE9B,yBAEsC,MAAM,G;MAE5C,yBAEsC,CAAC,GAAD,GAAO,G;MAE7C,WAEwB,EAAE,MAAM,GAAR,C;MAExB,kBACuB,C;MAEvB,iBACsB,E;K;;;8CAxB1B,CAAA,E;MAAA,4C;QAAA,2B;;MAAA,qC;K;iCA2BA,CAAA,E;MAAA,oC;MAEI,iBAC6B,O;MAE7B,iBAC6B,Y;MAE7B,yBAEqC,MAAO,G;MAE5C,yBAEqC,CAAC,GAAD,GAAQ,G;MAE7C,WAEuB,EAAE,MAAO,GAAT,C;MAEvB,kBACuB,C;MAEvB,iBACsB,E;K;;;6CAxB1B,CAAA,E;MAAA,2C;QAAA,0B;;MAAA,oC;K;+BA2BA,CAAA,E;MAAA,kC;MAEI,iBACqB,W;MAErB,iBACqB,U;MAErB,kBACuB,C;MAEvB,iBACsB,E;K;;;2CAZ1B,CAAA,E;MAAA,yC;QAAA,wB;;MAAA,kC;K;gCAeA,CAAA,E;MAAA,mC;MAEI,iBACyB,MADzB,CACgC,IADhC,CACsB,S;MAEtB,iBACyB,MADzB,CACgC,IADhC,CACsB,S;MAEtB,kBACuB,C;MAEvB,iBACsB,E;K;;;4CAZ1B,CAAA,E;MAAA,0C;QAAA,yB;;MAAA,mC;K;iCAeA,CAAA,E;MAAA,oC;MAEI,iBACuB,U;MAEvB,iBACuB,K;MAEvB,kBACuB,C;MAEvB,iBACsB,E;K;;;6CAZ1B,CAAA,E;MAAA,2C;QAAA,0B;;MAAA,oC;K;gCAeA,CAAA,E;MAAA,mC;MAEI,iBACsB,Q;MAEtB,iBACsB,G;MAEtB,kBACuB,C;MAEvB,iBACsB,C;K;;;4CAZ1B,CAAA,E;MAAA,0C;QAAA,yB;;MAAA,mC;K;gCAeA,CAAA,E;MAAA,mC;MAEI,iBACmC,C;MAEnC,iBACmC,K;MAEnC,0BAC4C,K;MAE5C,0BAC4C,K;MAE5C,yBAC2C,K;MAE3C,yBAC2C,K;MAE3C,0BACuC,kB;MAEvC,0BACuC,iB;MAEvC,kBACuB,C;MAEvB,iBACsB,E;K;;;4CA9B1B,CAAA,E;MAAA,0C;QAAA,yB;;MAAA,mC;K;kCAiCA,CAAA,E;MAAA,qC;K;;;8CAAA,CAAA,E;MAAA,4C;QAAA,2B;;MAAA,qC;K;mCAEA,CAAA,E;MAAA,sC;K;;;+CAAA,CAAA,E;MAAA,6C;QAAA,4B;;MAAA,sC;K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBC6qvBoB,I;;;0BCp7tB0C,O;;gBAyEvC,yB;eAAyB,wB;;;uBAgBzB,gC;sBAAwB,+B;+CA4JjC,S;+CA5ImC,S;;kBAQ1B,2B;iBAA0B,0B;;;;;;;eCvrBgB,wB;sBCoBA,sB;iBCnBA,0B;;;;;;;;;;;;;;;;;;;;;gCCxTlB,yC;+BCVA,uC;+BCAA,sC;;yBC4EgD,G;aC6KrD,sB;cAwQO,uB;gCCxWjC,+B;+BAIW,sC;gCCoyCc,+B;0BAHvB,kC;uBAz7BO,gC;yBAgYD,iC;0BACA,mC;yBA8JA,iC;gCAmZP,oC;+BAbc,oC;+BAEC,+B;yBAEQ,kC;;gBCp2C6C,yB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BCtErF,CAAA,E;K;;8BAQA,CAAA,E;K;;qCAUA,CAAA,E;K;;mCC3BA,C,gBAAA,E;MAMuF,wC;K;IANvF,qDAOI,CAAA,E;MAAuC,8B;K;IAP3C,8E;mCCGA,C,gBAAA,E;MAQuF,wC;K;IARvF,qDASI,CAAA,E;MAAuC,8B;K;IAT3C,8E;mGfOA,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;mGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;mGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;mGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;mGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA,E;MAQI,OAAO,UAAI,CAAJ,C;K;qGAGX,C,SAAA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,WnB+iMgC,C;K;qBAG3C,C,SAAA,E;MAI0B,kBAAf,yB;MAAuB,mB;MAA9B,OAAuC,OmBtjMhC,WnBsjMgC,C;K;qBAG3C,C,SAAA,E;MAI0B,kBAAf,0B;MAAuB,mB;MAA9B,OAAuC,OmB7jMhC,WnB6jMgC,C;K;wBAG3C,C,SAAA,E;MAMI,IA+zCO,qBAAQ,CA/zCf,C;QAAe,OAAO,S;MACD,kBAAd,SiB/3KiB,Q;MjB+3KK,mB;MAA7B,OmBvkMO,W;K;0BnB0kMX,C,SAAA,E;MAII,IA+zCO,qBAAQ,CA/zCf,C;QAAe,OAAO,S;MACD,kBAAd,SiB73KiB,Q;MjB63KK,iB;MAA7B,OmB/kMO,W;K;0BnBklMX,C,SAAA,E;MAII,IA+zCO,qBAAQ,CA/zCf,C;QAAe,OAAO,S;MACD,kBAAd,SiB33KiB,Q;MjB23KK,iB;MAA7B,OmBvlMO,W;K;0BnB0lMX,C,SAAA,E;MAII,IA+zCO,qBAAQ,CA/zCf,C;QAAe,OAAO,S;MACD,kBAAd,SiBz3KiB,Q;MjBy3KK,iB;MAA7B,OmB/lMO,W;K;0BnBkmMX,C,SAAA,E;MAII,IA+zCO,qBAAQ,CA/zCf,C;QAAe,OAAO,S;MACD,kBAAT,UAAL,SAAK,C;MAAiB,mB;MAA7B,OmBvmMO,W;K;0BnB0mMX,C,SAAA,E;MAII,IA+zCO,qBAAQ,CA/zCf,C;QAAe,OAAO,S;MACD,kBAAd,SiBt3KiB,Q;MjBs3KK,iB;MAA7B,OmB/mMO,W;K;0BnBknMX,C,SAAA,E;MAII,IA+zCO,qBAAQ,CA/zCf,C;QAAe,OAAO,S;MACD,kBAAd,SiBp3KiB,Q;MjBo3KK,iB;MAA7B,OmBvnMO,W;K;0BnB0nMX,C,SAAA,E;MAII,IAu0CO,qBAAQ,CAv0Cf,C;QAAe,OAAO,S;MACD,kBAAT,UAAL,SAAK,C;MAAiB,iB;MAA7B,OmB/nMO,W;K;kCnBkoMX,C,SAAA,E;MAMI,IA6vCO,qBAAQ,CA7vCf,C;QAAe,OAAO,S;MACD,kBAAd,SiBj8KiB,Q;MjBi8KK,sBAAS,cAAT,C;MAA7B,OmBzoMO,W;K;oCnB4oMX,C,SAAA,E;MAII,IA6vCO,qBAAQ,CA7vCf,C;QAAe,OAAO,S;MACD,kBAAd,SiB/7KiB,Q;MjB+7KK,6B;MAA7B,OmBjpMO,W;K;oCnBopMX,C,SAAA,E;MAII,IA6vCO,qBAAQ,CA7vCf,C;QAAe,OAAO,S;MACD,kBAAd,SiB77KiB,Q;MjB67KK,6B;MAA7B,OmBzpMO,W;K;oCnB4pMX,C,SAAA,E;MAII,IA6vCO,qBAAQ,CA7vCf,C;QAAe,OAAO,S;MACD,kBAAd,SiB37KiB,Q;MjB27KK,6B;MAA7B,OmBjqMO,W;K;oCnBoqMX,C,SAAA,E;MAII,IA6vCO,qBAAQ,CA7vCf,C;QAAe,OAAO,S;MACD,kBAAT,UAAL,SAAK,C;MAAiB,6B;MAA7B,OmBzqMO,W;K;oCnB4qMX,C,SAAA,E;MAII,IA6vCO,qBAAQ,CA7vCf,C;QAAe,OAAO,S;MACD,kBAAd,SiBx7KiB,Q;MjBw7KK,6B;MAA7B,OmBjrMO,W;K;oCnBorMX,C,SAAA,E;MAII,IA6vCO,qBAAQ,CA7vCf,C;QAAe,OAAO,S;MACD,kBAAd,SiBt7KiB,Q;MjBs7KK,6B;MAA7B,OmBzrMO,W;K;oCnB4rMX,C,SAAA,E;MAII,IAqwCO,qBAAQ,CArwCf,C;QAAe,OAAO,S;MACD,kBAAT,UAAL,SAAK,C;MAAiB,6B;MAA7B,OmBjsMO,W;K;4BnBosMX,C,qBAAA,E;MAMI,IA2rCO,qBAAQ,CA3rCf,C;QAAe,OAAO,S;MACD,kBAAd,SiBngLiB,Q;MjBmgLK,iC;MAA7B,OmB3sMO,W;K;sFnB8sMX,uBAAA,E;MAAA,wD;MkBnsMA,sC;MAAA,oC;MAAA,uBAOe,uBAAA,E;QArEf,8D;wBAqEe,C,gBAAA,E;UAAA,iB,IAAA,E;YAAU,eAAsB,gB;YAAtB,OA5Dd,cAAc,SA4DgB,CA5DhB,CAAd,EAA2B,SA4DM,CA5DN,CAA3B,C;W;S;OA4DI,C;MlB4rMf,iB,mBAAA,E;QAQI,OAAO,sBkBpsMP,eAAW,iBlBosMiB,QkBpsMjB,CAAX,ClBosMO,C;O;KARX,C;wFAWA,uBAAA,E;MAAA,wD;MkB9sMA,sC;MAAA,oC;MAAA,uBAOe,uBAAA,E;QArEf,8D;wBAqEe,C,gBAAA,E;UAAA,iB,IAAA,E;YAAU,eAAsB,gB;YAAt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B,CAAd,EAA2B,SA+EM,CA/EN,CAA3B,C;W;S;OA+EI,C;MlBiyMf,iB,mBAAA,E;QAII,OAAO,sBkBryMP,eAAW,2BlBqyM2B,QkBryM3B,CAAX,ClBqyMO,C;O;KAJX,C;4GAOA,uBAAA,E;MAAA,wD;MkB/yMA,sC;MAAA,oC;MAAA,iCAOe,uBAAA,E;QAxFf,8D;wBAwFe,C,gBAAA,E;UAAA,iB,IAAA,E;YAAU,eAAsB,gB;YAAtB,OA/Ed,cAAc,SA+EgB,CA/EhB,CAAd,EAA2B,SA+EM,CA/EN,CAA3B,C;W;S;OA+EI,C;MlBwyMf,iB,mBAAA,E;QAII,OAAO,sBkB5yMP,eAAW,2BlB4yM2B,QkB5yM3B,CAAX,ClB4yMO,C;O;KAJX,C;4GAOA,uBAAA,E;MAAA,wD;MkBtzMA,sC;MAAA,oC;MAAA,iCAOe,uBAAA,E;QAxFf,8D;wBAwFe,C,gBAAA,E;UAAA,iB,IAAA,E;YAAU,eAAsB,gB;YAAtB,OA/Ed,cAAc,SA+EgB,CA/EhB,CAAd,EAA2B,SA+EM,CA/EN,CAA3B,C;W;S;OA+EI,C;MlB+yMf,iB,mBAAA,E;QAII,OAAO,sBkBnzMP,eAAW,2BlBmzM2B,QkBnzM3B,CAAX,ClBmzMO,C;O;KAJX,C;4GAOA,uBAAA,E;MAAA,wD;MkB7zMA,sC;MAAA,oC;MAAA,iCAOe,uBAAA,E;QAxFf,8D;wBAwFe,C,gBAAA,E;UAAA,iB,IAAA,E;YAAU,eAAsB,gB;YAAtB,OA/Ed,cAAc,SA+EgB,CA/EhB,CAAd,EAA2B,SA+EM,CA/EN,CAA3B,C;W;S;OA+EI,C;MlBszMf,iB,mBAAA,E;QAII,OAAO,sBkB1zMP,eAAW,2BlB0zM2B,QkB1zM3B,CAAX,ClB0zMO,C;O;KAJX,C;6BAOA,C,SAAA,E;MAMI,OAAO,sBAAW,cAAX,C;K;+BAGX,C,SAAA,E;MAIoB,kBiB7pLQ,iB;MjB6pLA,iB;MAAxB,OAAiC,WmB/2M1B,WnB+2M0B,C;K;+BAGrC,C,SAAA,E;MAIoB,kBiB1pLQ,iB;MjB0pLA,iB;MAAxB,OAAiC,WmBt3M1B,WnBs3M0B,C;K;+BAGrC,C,SAAA,E;MAIoB,kBiBvpLQ,iB;MjBupLA,iB;MAAxB,OAAiC,WmB73M1B,WnB63M0B,C;K;+BAGrC,C,SAAA,E;MAIoB,kBAAT,oB;MAAiB,mB;MAAxB,OAAiC,WmBp4M1B,WnBo4M0B,C;K;+BAGrC,C,SAAA,E;MAIoB,kBiBlpLQ,iB;MjBkpLA,iB;MAAxB,OAAiC,WmB34M1B,WnB24M0B,C;K;+BAGrC,C,SAAA,E;MAIoB,kBiB/oLQ,iB;MjB+oLA,iB;MAAxB,OAAiC,WmBl5M1B,WnBk5M0B,C;K;+BAGrC,C,SAAA,E;MAIoB,kBAAT,oB;MAAiB,iB;MAAxB,OAAiC,WmBz5M1B,WnBy5M0B,C;K;uBAGrC,C,qBAAA,E;MAMI,OAAmC,OAA5B,2BAAgB,UAAhB,CAA4B,C;K;yBAGvC,C,qBAAA,E;MAI0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OmBz6M9C,WnBy6M8C,C;K;yBAGzD,C,qBAAA,E;MAI0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OmBh7M9C,WnBg7M8C,C;K;yBAGzD,C,qBAAA,E;MAI0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OmBv7M9C,WnBu7M8C,C;K;yBAGzD,C,qBAAA,E;MAI0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OmB97M9C,WnB87M8C,C;K;yBAGzD,C,qBAAA,E;MAI0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OmBr8M9C,WnBq8M8C,C;K;yBAGzD,C,qBAAA,E;MAI0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OmB58M9C,WnB48M8C,C;K;yBAGzD,C,qBAAA,E;MAI0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OmBn9M9C,WnBm9M8C,C;K;yBAGzD,C,qBAAA,E;MAI0B,kBAAf,0B;MAAuB,iC;MAA9B,OAAqD,OmB19M9C,WnB09M8C,C;K;wBAo3BrD,C,SAAA,E;MAAQ,oBAAS,CAAT,EAAY,wBAAZ,C;K;0BAMR,C,SAAA,E;MAAQ,oBAAS,CAAT,EAAY,0BAAZ,C;K;0BAMR,C,SAAA,E;MAAQ,oBAAS,CAAT,EAAY,0BAAZ,C;K;0BAMR,C,SAAA,E;MAAQ,oBAAS,CAAT,EAAY,0BAAZ,C;K;0BAMR,C,SAAA,E;MAA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A,E;MGtkrBA,6B;MHskrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UGtkrBmC,cHskrBnB,CGtkrBmB,C;QHukrBnC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MGp5rBiD,cHo5rBjD,GGp5rBgE,CAAL,IAAK,GHo5rBzD,SAAS,OAAT,CGp5rByD,CAAW,IAAX,IAAf,C;;QHs5rBrD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MGvlrBA,6B;MHulrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UGvlrBmC,cHulrBnB,CGvlrBmB,C;QHwlrBnC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MGr6rBiD,cHq6rBjD,GGr6rBgE,CAAL,IAAK,GHq6rBzD,SAAS,OAAT,CGr6rByD,CAAW,IAAX,IAAf,C;;QHu6rBrD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MGxmrBA,6B;MHwmrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UGxmrBmC,cHwmrBnB,CGxmrBmB,C;QHymrBnC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MGt7rBiD,cHs7rBjD,GGt7rBgE,CAAL,IAAK,GHs7rBzD,SAAS,OAAT,CGt7rByD,CAAW,IAAX,IAAf,C;;QHw7rBrD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MGznrBA,6B;MHynrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UGznrBmC,cHynrBnB,CGznrBmB,C;QH0nrBnC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MGv8rBiD,cHu8rBjD,GGv8rBgE,CAAL,IAAK,GHu8rBzD,SAAS,OAAT,CGv8rByD,CAAW,IAAX,IAAf,C;;QHy8rBrD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MG1orBA,6B;MH0orBA,iB,mBAAA,E;QAWoB,Q;QADhB,UG1orBmC,cH0orBnB,CG1orBmB,C;QH2orBnC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MGx9rBiD,cHw9rBjD,GGx9rBgE,CAAL,IAAK,GHw9rBzD,SAAS,OAAT,CGx9rByD,CAAW,IAAX,IAAf,C;;QH09rBrD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MAAA,oC;MAAA,gC;MG3prBA,6B;MH2prBA,iB,mBAAA,E;QAWoB,Q;QADhB,UG3prBmC,cH2prBnB,CG3prBmB,C;QH4prBnC,wBAAgB,SAAhB,gB;UAAgB,cAAhB,UAAgB,SAAhB,O;UACI,MGz+rBiD,cHy+rBjD,GGz+rBgE,CAAL,IAAK,GHy+rBzD,SAAS,oBAAT,CGz+rByD,CAAW,IAAX,IAAf,C;;QH2+rBrD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MqBzqrBA,+B;MrByqrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UqBxqrBqC,eAAW,oBrBwqrB/B,CqBxqrB+B,CAAX,C;QrByqrBrC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MqBv/rBmD,erBu/rBnD,GqBv/rBmE,CAAL,IAAK,KrBu/rB5D,SAAS,OAAT,CqBv/rB4D,CAAW,IAAX,CAAhB,C;;QrBy/rBvD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MqB1rrBA,+B;MrB0rrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UqBzrrBqC,eAAW,oBrByrrB/B,CqBzrrB+B,CAAX,C;QrB0rrBrC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MqBxgsBmD,erBwgsBnD,GqBxgsBmE,CAAL,IAAK,KrBwgsB5D,SAAS,OAAT,CqBxgsB4D,CAAW,IAAX,CAAhB,C;;QrB0gsBvD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MqB3srBA,+B;MrB2srBA,iB,mBAAA,E;QAWoB,Q;QADhB,UqB1srBqC,eAAW,oBrB0srB/B,CqB1srB+B,CAAX,C;QrB2srBrC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MqBzhsBmD,erByhsBnD,GqBzhsBmE,CAAL,IAAK,KrByhsB5D,SAAS,OAAT,CqBzhsB4D,CAAW,IAAX,CAAhB,C;;QrB2hsBvD,OAAO,G;O;KAdX,C;kFAiBA,uBAAA,E;MqB5trBA,+B;MrB4trBA,iB,mBAAA,E;QAWoB,Q;QADhB,UqB3trBqC,eAAW,oBrB2trB/B,CqB3trB+B,CAAX,C;QrB4trBrC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MqB1isBmD,erB0isBnD,GqB1isBmE,CAAL,IAAK,KrB0isB5D,SAAS,OAAT,CqB1isB4D,CAAW,IAAX,CAAhB,C;;QrB4isBvD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MqB7urBA,+B;MrB6urBA,iB,mBAAA,E;QAWoB,Q;QADhB,UqB5urBqC,eAAW,oBrB4urB/B,CqB5urB+B,CAAX,C;QrB6urBrC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MqB3jsBmD,erB2jsBnD,GqB3jsBmE,CAAL,IAAK,KrB2jsB5D,SAAS,OAAT,CqB3jsB4D,CAAW,IAAX,CAAhB,C;;QrB6jsBvD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MqB9vrBA,+B;MrB8vrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UqB7vrBqC,eAAW,oBrB6vrB/B,CqB7vrB+B,CAAX,C;QrB8vrBrC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MqB5ksBmD,erB4ksBnD,GqB5ksBmE,CAAL,IAAK,KrB4ksB5D,SAAS,OAAT,CqB5ksB4D,CAAW,IAAX,CAAhB,C;;QrB8ksBvD,OAAO,G;O;KAdX,C;mFAiBA,uBAAA,E;MqB/wrBA,+B;MrB+wrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UqB9wrBqC,eAAW,oBrB8wrB/B,CqB9wrB+B,CAAX,C;QrB+wrBrC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MqB7lsBmD,erB6lsBnD,GqB7lsBmE,CAAL,IAAK,KrB6lsB5D,SAAS,OAAT,CqB7lsB4D,CAAW,IAAX,CAAhB,C;;QrB+lsBvD,OAAO,G;O;KAdX,C;kFAiBA,uBAAA,E;MqBhyrBA,+B;MrBgyrBA,iB,mBAAA,E;QAWoB,Q;QADhB,UqB/xrBqC,eAAW,oBrB+xrB/B,CqB/xrB+B,CAAX,C;QrBgyrBrC,wBAAgB,SAAhB,gB;UAAgB,cAAA,SAAhB,M;UACI,MqB9msBmD,erB8msBnD,GqB9msBmE,CAAL,IAAK,KrB8msB5D,SAAS,OAAT,CqB9msB4D,CAAW,IAAX,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;K;mFAGJ,uBAAA,E;MJusDA,sE;MFn3DA,iB;MM4KA,iB,mBAAA,E;QJotDI,eAAe,UIvsDR,OJusDQ,W;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,MAAM,6B;QAC/B,eIzsDqB,QJysDN,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QI3sDiB,QJ2sDT,CAAS,QAAS,OAAlB,C;UACR,WF73DG,MAAO,KE63DO,QF73DP,EE63DiB,CF73DjB,C;;QMiLd,OJ8sDO,Q;O;KI3tDX,C;mFAgBA,uBAAA,E;MJ8sDA,sE;MFr5DA,iB;MMuMA,iB,mBAAA,E;QJ2tDI,eAAe,UI9sDR,OJ8sDQ,W;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,MAAM,6B;QAC/B,eIhtDqB,QJgtDN,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QIltDiB,QJktDT,CAAS,QAAS,OAAlB,C;UACR,WF/5DG,MAAO,KE+5DO,QF/5DP,EE+5DiB,CF/5DjB,C;;QM4Md,OJqtDO,Q;O;KIluDX,C;mFAgBA,uBAAA,E;MJqtDA,sE;MIrtDA,iB,mBAAA,E;QJguDI,eAAe,UIrtDR,OJqtDQ,W;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,MAAM,6B;QAC/B,eIvtDqB,QJutDN,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QIztDiB,QJytDT,CAAS,QAAS,OAAlB,C;UACR,IAAI,2BAAW,CAAX,KAAJ,C;YACI,WAAW,C;;;QI3tDnB,OJ8tDO,Q;O;KIzuDX,C;+FAcA,uBAAA,E;MN1NA,iB;MM0NA,iB,mBAAA,E;QAWmB,4BAAR,O;QAAQ,sB;8BJsuDnB;A,UARI,eAAe,sB;UACf,IAAI,CAAC,QAAS,UAAd,C;YAAyB,qBAAO,I;YAAP,uB;;UACzB,eIhuD2B,QJguDZ,CAAS,QAAS,OAAlB,C;UACf,OAAO,QAAS,UAAhB,C;YACI,QIluDuB,QJkuDf,CAAS,QAAS,OAAlB,C;YACR,WFh8DG,MAAO,KEg8DO,QFh8DP,EEg8DiB,CFh8DjB,C;;UEk8Dd,qBAAO,Q;;;QIruDP,yB;O;KAXJ,C;+FAcA,uBAAA,E;MNnPA,iB;MMmPA,iB,mBAAA,E;QAWmB,4BAAR,O;QAAQ,sB;8BJ6uDnB;A,UARI,eAAe,sB;UACf,IAAI,CAAC,QAAS,UAAd,C;YAAyB,qBAAO,I;YAAP,uB;;UACzB,eIvuD2B,QJuuDZ,CAAS,QAAS,OAAlB,C;UACf,OAAO,QAAS,UAAhB,C;YACI,QIzuDuB,QJyuDf,CAAS,QAAS,OAAlB,C;YACR,WFh+DG,MAAO,KEg+DO,QFh+DP,EEg+DiB,CFh+DjB,C;;UEk+Dd,qBAAO,Q;;;QI5uDP,yB;O;KAXJ,C;wGAcA,C,mBAAA,E;MASmB,4BAAR,O;MAAQ,sB;4BJsvDnB;A,QAVI,eAAe,sB;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,qBAAO,I;UAAP,uB;;QACzB,eI9uD2B,QJ8uDZ,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QIhvDuB,QJgvDf,CAAS,QAAS,OAAlB,C;UACR,IAAI,2BAAW,CAAX,KAAJ,C;YACI,WAAW,C;;;QAGnB,qBAAO,Q;;;MIrvDP,yB;K;0FAGJ,uBAAA,E;MJqvDA,sE;MIrvDA,iB,+BAAA,E;QJgwDI,eAAe,UIrvDR,OJqvDQ,W;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,MAAM,6B;QAC/B,eIvvDqC,QJuvDtB,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QIzvDiC,QJyvDzB,CAAS,QAAS,OAAlB,C;UACR,II1vDqB,UJ0vDN,SAAQ,QAAR,EAAkB,CAAlB,CAAX,GAAkC,CAAtC,C;YACI,WAAW,C;;;QI3vDnB,OJ8vDO,Q;O;KIzwDX,C;+GAcA,C,+BAAA,E;MASmB,4BAAR,O;MAAQ,0B;gCJwwDnB;A,QAVI,eAAe,sB;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,yBAAO,I;UAAP,2B;;QACzB,eIhwD2C,QJgwD5B,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QIlwDuC,QJkwD/B,CAAS,QAAS,OAAlB,C;UACR,IInwD2B,UJmwDZ,SAAQ,QAAR,EAAkB,CAAlB,CAAX,GAAkC,CAAtC,C;YACI,WAAW,C;;;QAGnB,yBAAO,Q;;;MIvwDP,6B;K;sFAGJ,uBAAA,E;MAAA,kD;MAAA,iB,qBAAA,E;QAUI,OAAe,kBAAR,OAAQ,EAAQ,UAAR,C;O;KAVnB,C;kGAaA,uBAAA,E;MAAA,8D;MAAA,iB,qBAAA,E;QAMI,OAAe,wBAAR,OAAQ,EAAc,UAAd,C;O;KANnB,C;kFASA,uBAAA,E;MJi4DA,sE;MIj4DA,iB,mBAAA,E;QAYmB,4BAAR,O;QAAQ,gB;wBJ84DnB;A,UAdI,eAAe,sB;UACf,IAAI,CAAC,QAAS,UAAd,C;YAAyB,MAAM,6B;UAC/B,cAAc,QAAS,O;UACvB,IAAI,CAAC,QAAS,UAAd,C;YAAyB,eAAO,O;YAAP,iB;;UACzB,eIp4DqB,QJo4DN,CAAS,OAAT,C;;YAEX,QAAQ,QAAS,O;YACjB,QIv4DiB,QJu4DT,CAAS,CAAT,C;YACR,IAAI,2BAAW,CAAX,KAAJ,C;cACI,UAAU,C;cACV,WAAW,C;;;UAED,QAAT,QAAS,W;UAClB,eAAO,O;;;QI74DP,mB;O;KAZJ,C;uGAeA,C,mBAAA,E;MAQmB,4BAAR,O;MAAQ,sB;4BJ05DnB;A,QAdI,eAAe,sB;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,qBAAO,I;UAAP,uB;;QACzB,cAAc,QAAS,O;QACvB,IAAI,CAAC,QAAS,UAAd,C;UAAyB,qBAAO,O;UAAP,uB;;QACzB,eIh5D2B,QJg5DZ,CAAS,OAAT,C;;UAEX,QAAQ,QAAS,O;UACjB,QIn5DuB,QJm5Df,CAAS,CAAT,C;UACR,IAAI,2BAAW,CAAX,KAAJ,C;YACI,UAAU,C;YACV,WAAW,C;;;QAED,QAAT,QAAS,W;QAClB,qBAAO,O;;;MIz5DP,yB;K;mFAGJ,uBAAA,E;MJy5DA,sE;MFjhEA,iB;MMwHA,iB,mBAAA,E;QJs6DI,eAAe,UIz5DR,OJy5DQ,W;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,MAAM,6B;QAC/B,eI35DqB,QJ25DN,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QI75DiB,QJ65DT,CAAS,QAAS,OAAlB,C;UACR,WF3hEG,MAAO,KE2hEO,QF3hEP,EE2hEiB,CF3hEjB,C;;QM6Hd,OJg6DO,Q;O;KI76DX,C;mFAgBA,uBAAA,E;MJg6DA,sE;MFnjEA,iB;MMmJA,iB,mBAAA,E;QJ66DI,eAAe,UIh6DR,OJg6DQ,W;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,MAAM,6B;QAC/B,eIl6DqB,QJk6DN,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QIp6DiB,QJo6DT,CAAS,QAAS,OAAlB,C;UACR,WF7jEG,MAAO,KE6jEO,QF7jEP,EE6jEiB,CF7jEjB,C;;QMwJd,OJu6DO,Q;O;KIp7DX,C;mFAgBA,uBAAA,E;MJu6DA,sE;MIv6DA,iB,mBAAA,E;QJk7DI,eAAe,UIv6DR,OJu6DQ,W;QACf,IAAI,CAAC,QAAS,UAAd,C;UAAyB,MAAM,6B;QAC/B,eIz6DqB,QJy6DN,CAAS,QAAS,OAAlB,C;QACf,OAAO,QAAS,UAAhB,C;UACI,QI36DiB,QJ26DT,CAAS,QAAS,OAAlB,C;UACR,IAAI,2BAAW,CAAX,KAAJ,C;YACI,WAAW,C;;;QI76DnB,OJg7DO,Q;O;KI37DX,C;+FAcA,uBAAA,E;MNtKA,iB;MMsKA,iB,mBAAA,E;QAWmB,4BAAR,O;QAAQ,sB;8BJw7DnB;A,UARI,eAAe,sB;UACf,IAAI,CAAC,QAAS,UAAd,C;YAAyB,qBAAO,I;YAAP,uB;;UACzB,eIl7D2B,QJk7DZ,CAAS,QAAS,OAAlB,C;UACf,OAAO,QAAS,UAAhB,C;YACI,QIp7DuB,QJo7Df,CAAS,QAAS,OAAlB,C;YACR,WF9lEG,MAAO,KE8lEO,QF9lEP,EE8lEiB,CF9lEjB,C;;UEgmEd,qBAAO,Q;;;QIv7DP,yB;O;KAXJ,C;+FAcA,uBAAA,E;MN/LA,iB;MM+LA,iB,mBAAA,E;QAWmB,4BAAR,O;QAAQ,sB;8BJ+7DnB;A,UARI,eAAe,sB;UACf,IAAI,CAAC,QAAS,UAAd,C;YAAyB,qBAAO,I;YAAP,uB;;UACzB,eIz7D2B,QJy7DZ,CAAS,QAAS,OAAlB,C;UACf,OAAO,QAAS,UAAhB,C;YACI,QI37DuB,QJ27Df,CAAS,QAAS,OAAlB,C;YACR,WF9nEG,MAAO,K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Ac,gBAy9FT,0BAAR,OAAQ,C;;MAz9FhB,OAAO,OAAsC,sBAAI,KAAJ,CAAtC,GAAsD,I;K;uFAGjE,uBAAA,E;MAAA,kD;MAAA,iB,kBAAA,E;QAOI,OAAe,kBAAR,OAAQ,EAAQ,OAAR,CrChdkB,IqCgdlB,C;O;KAPnB,C;uFAUA,uBAAA,E;MAAA,kD;MAAA,iB,kBAAA,E;QAOI,OAAe,kBAAR,OAAQ,EAAQ,OAAR,CnB/coB,ImB+cpB,C;O;KAPnB,C;uFAUA,uBAAA,E;MAAA,kD;MAAA,iB,kBAAA,E;QAOI,OAAe,kBAAR,OAAQ,EAAQ,OAAR,CtC5gBoB,IsC4gBpB,C;O;KAPnB,C;uFAUA,uBAAA,E;MAAA,kD;MAAA,iB,kBAAA,E;QAOI,OAAe,kBAAR,OAAQ,EAAQ,OAAR,CpC3gBsB,IoC2gBtB,C;O;KAPnB,C;iGAUA,uBAAA,E;MAAA,sC;MrCtZA,6B;MqCsZA,0BAOgC,uBAAA,E;QrC7ZhC,6B;wBqC6ZgC,C,iBAAA,E;UAAA,iB,EAAA,E;YAAE,yBrCnZK,cqCmZK,ErCnZL,CqCmZL,C;W;S;OAAF,C;MAPhC,iB,oBAAA,E;QAOmB,4BAAR,O;QAAQ,uB;+BxCq1BnB;A,UANI,0D;YACI,IwCh1B0B,UrCnZK,cHmuCjB,YAAK,KAAL,CGnuCiB,CqCmZL,CxCg1B1B,C;cACI,sBAAO,K;cAAP,wB;;;UAGR,sBAAO,E;;;QwCp1BP,0B;O;KAPJ,C;iGAUA,uBAAA,E;MAAA,sC;MnBjZA,+B;MmBiZA,0BAOgC,uBAAA,E;QnBxZhC,+B;wBmBwZgC,C,iBAAA,E;UAAA,iB,EAAA,E;YAAE,yBnB9YQ,emB8YE,EnB9YF,CmB8YR,C;W;S;OAAF,C;MAPhC,iB,oBAAA,E;QAOmB,4BAAR,O;QAAQ,uB;+BxCu1BnB;A,UANI,0D;YACI,IwCl1B0B,UnB9YQ,erBguCpB,YAAK,KAAL,CqBhuCoB,CmB8YR,CxCk1B1B,C;cACI,sBAAO,K;cAAP,wB;;;UAGR,sBAAO,E;;;QwCt1BP,0B;O;KAPJ,C;iGAUA,uBAAA,E;MAAA,sC;MtCxdA,+B;MsCwdA,0BAOgC,uBAAA,E;QtC/dhC,+B;wBsC+dgC,C,iBAAA,E;UAAA,iB,EAAA,E;YAAE,yBtCrdQ,esCqdE,EtCrdF,CsCqdR,C;W;S;OAAF,C;MAPhC,iB,oBAAA,E;QAOmB,4BAAR,O;QAAQ,uB;+BxCyyBnB;A,UANI,0D;YACI,IwCpyB0B,UtCrdQ,eFyvCpB,YAAK,KAAL,CEzvCoB,CsCqdR,CxCoyB1B,C;cACI,sBAAO,K;cAAP,wB;;;UAGR,sBAAO,E;;;QwCxyBP,0B;O;KAPJ,C;iGAUA,uBAAA,E;MAAA,sC;MpCrdA,iC;MoCqdA,0BAOgC,uBAAA,E;QpC5dhC,iC;wBoC4dgC,C,iBAAA,E;UAAA,iB,EAAA,E;YAAE,yBpCldW,gBoCkdD,EpCldC,CoCkdX,C;W;S;OAAF,C;MAPhC,iB,oBAAA,E;QAOmB,4BAAR,O;QAAQ,uB;+BxC2yBnB;A,UANI,0D;YACI,IwCtyB0B,UpCldW,gBJwvCvB,YAAK,KAAL,CIxvCuB,CoCkdX,CxCsyB1B,C;cACI,sBAAO,K;cAAP,wB;;;UAGR,sBAAO,E;;;QwC1yBP,0B;O;KAPJ,C;+FAUA,uBAAA,E;MAAA,sC;MxCs5BA,0D;MAAA,+C;MGp1CA,6B;MqC8bA,yBAO+B,uBAAA,E;QrCrc/B,6B;wBqCqc+B,C,iBAAA,E;UAAA,iB,EAAA,E;YAAE,yBrC3bM,cqC2bI,ErC3bJ,CqC2bN,C;W;S;OAAF,C;MAP/B,iB,oBAAA,E;QAOmB,4BAAR,O;QAAQ,sB;8BxCy5BnB;A,UANkB,Q;UAAA,OAAQ,SAAR,wBAAQ,CAAR,W;UAAd,OAAc,cAAd,C;YAAc,uB;YACV,IwCp5ByB,UrC3bM,cH+0CjB,YAAK,KAAL,CG/0CiB,CqC2bN,CxCo5BzB,C;cACI,qBAAO,K;cAAP,uB;;;UAGR,qBAAO,E;;;QwCx5BP,yB;O;KAPJ,C;+FAUA,uBAAA,E;MAAA,sC;MxCw5BA,0D;MAAA,+C;MqBj1CA,+B;MmBybA,yBAO+B,uBAAA,E;QnBhc/B,+B;wBmBgc+B,C,iBAAA,E;UAAA,iB,EAAA,E;YAAE,yBnBtbS,emBsbC,EnBtbD,CmBsbT,C;W;S;OAAF,C;MAP/B,iB,oBAAA,E;QAOmB,4BAAR,O;QAAQ,sB;8BxC25BnB;A,UANkB,Q;UAAA,OAAQ,SAAR,wBAAQ,CAAR,W;UAAd,OAAc,cAAd,C;YAAc,uB;YACV,IwCt5ByB,UnBtbS,erB40CpB,YAAK,KAAL,CqB50CoB,CmBsbT,CxCs5BzB,C;cACI,qBAAO,K;cAAP,uB;;;UAGR,qBAAO,E;;;QwC15BP,yB;O;KAPJ,C;+FAUA,uBAAA,E;MAAA,sC;MxC02BA,0D;MAAA,+C;ME12CA,+B;MsCggBA,yBAO+B,uBAAA,E;QtCvgB/B,+B;wBsCugB+B,C,iBAAA,E;UAAA,iB,EAAA,E;YAAE,yBtC7fS,esC6fC,EtC7fD,CsC6fT,C;W;S;OAAF,C;MAP/B,iB,oBAAA,E;QAOmB,4BAAR,O;QAAQ,sB;8BxC62BnB;A,UANkB,Q;UAAA,OAAQ,SAAR,wBAAQ,CAAR,W;UAAd,OAAc,cAAd,C;YAAc,uB;YACV,IwCx2ByB,UtC7fS,eFq2CpB,YAAK,KAAL,CEr2CoB,CsC6fT,CxCw2BzB,C;cACI,qBAAO,K;cAAP,uB;;;UAGR,qBAAO,E;;;QwC52BP,yB;O;KAPJ,C;+FAUA,uBAAA,E;MAAA,sC;MxC42BA,0D;MAAA,+C;MIz2CA,iC;MoC6fA,yBAO+B,uBAAA,E;QpCpgB/B,iC;wBoCogB+B,C,iBAAA,E;UAAA,iB,EAAA,E;YAAE,yBpC1fY,gBoC0fF,EpC1fE,CoC0fZ,C;W;S;OAAF,C;MAP/B,iB,oBAAA,E;QAOmB,4BAAR,O;QAAQ,sB;8BxC+2BnB;A,UANkB,Q;UAAA,OAAQ,SAAR,wBAAQ,CAAR,W;UAAd,OAAc,cAAd,C;YAAc,uB;YACV,IwC12ByB,UpC1fY,gBJo2CvB,YAAK,KAAL,CIp2CuB,CoC0fZ,CxC02BzB,C;cACI,qBAAO,K;cAAP,uB;;;UAGR,qBAAO,E;;;QwC92BP,yB;O;KAPJ,C;iFAUA,uBAAA,E;MAAA,4C;MrCteA,6B;MqCseA,iB,SAAA,E;QAWI,OrCvemC,cqCuepB,eAAR,OAAQ,CrCveoB,C;O;KqC4dvC,C;iFAcA,uBAAA,E;MAAA,4C;MnBreA,+B;MmBqeA,iB,SAAA,E;QAWI,OnBtesC,emBsevB,eAAR,OAAQ,CnBteuB,C;O;KmB2d1C,C;iFAcA,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O,W;K;0BqB66FX,C,SAAA,E;MAMI,IAAI,mBAAJ,C;QAAe,OAAO,S;MACD,kBA8cd,eA9cA,SvBluEiB,CuBgrFN,OvBhrFM,QuBgrFjB,C;MA9csB,mB;MAA7B,OrBp7FO,W;K;2BqBu7FX,C,SAAA,E;MAMI,IAAI,mBAAJ,C;QAAe,OAAO,S;MACD,kBAgdd,gBAhdA,SvBluEiB,CuBkrFL,OvBlrFK,QuBkrFjB,C;MAhdsB,mB;MAA7B,OrB97FO,W;K;oCqBi8FX,C,SAAA,E;MAMI,IAAI,mBAAJ,C;QAAe,OAAO,S;MACD,kBAkad,cAlaA,SvBluEiB,CuBooFP,OvBpoFO,QuBooFjB,C;MAlasB,8B;MAA7B,OrBx8FO,W;K;oCqB28FX,C,SAAA,E;MAMI,IAAI,mBAAJ,C;QAAe,OAAO,S;MACD,kBAoad,eAAmB,UApanB,SAoamB,CAAR,OAAQ,CAAnB,C;MApasB,8B;MAA7B,OrBl9FO,W;K;oCqBq9FX,C,SAAA,E;MAMI,IAAI,mBAAJ,C;QAAe,OAAO,S;MACD,kBAsad,eAtaA,SvB1wEiB,CuBgrFN,OvBhrFM,QuBgrFjB,C;MAtasB,8B;MAA7B,OrB59FO,W;K;qCqB+9FX,C,SAAA,E;MAMI,IAAI,mBAAJ,C;QAAe,OAAO,S;MACD,kBAwad,gBAxaA,SvB1wEiB,CuBkrFL,OvBlrFK,QuBkrFjB,C;MAxasB,8B;MAA7B,OrBt+FO,W;K;+BqBy+FX,C,SAAA,E;MAQoB,kBAyXT,cvBpoFiB,UuBooFP,OvBpoFO,QuBooFjB,C;MAzXiB,mB;MAAxB,OAAiC,YrBj/F1B,WqBi/F0B,C;K;gCAGrC,C,SAAA,E;MAQoB,kBA0XT,eAAmB,oBAAR,OAAQ,CAAnB,C;MA1XiB,mB;MAAxB,OAAiC,YrB5/F1B,WqB4/F0B,C;K;gCAGrC,C,SAAA,E;MAQoB,kBA2XT,evBhrFiB,UuBgrFN,OvBhrFM,QuBgrFjB,C;MA3XiB,mB;MAAxB,OAAiC,YrBvgG1B,WqBugG0B,C;K;gCAGrC,C,SAAA,E;MAQoB,kBA4XT,gBvBlrFiB,UuBkrFL,OvBlrFK,QuBkrFjB,C;MA5XiB,mB;MAAxB,OAAiC,YrBlhG1B,WqBkhG0B,C;K;qGAGrC,C,SAAA,E;MAQI,iBAAO,O;K;mGAGX,C,SAAA,E;MAQI,iBAAO,O;K;qGA+BX,C,SAAA,E;MAQI,iBAAO,O;K;uGAGX,C,SAAA,E;MAQI,iBAAO,O;K;8FAGX,uBAAA,E;MAAA,yC;MAAA,iB,SAAA,E;QAQI,OAAO,oBAAW,SAAX,C;O;KARX,C;4FAWA,uBAAA,E;MAAA,uC;MAAA,iB,SAAA,E;QAQI,OAAO,mBAAU,SAAV,C;O;KARX,C;8FAWA,uBAAA,E;MAAA,yC;MAAA,iB,SAAA,E;QAQI,OAAO,oBAAW,SAAX,C;O;KARX,C;gGAWA,uBAAA,E;MAAA,2C;MAAA,iB,SAAA,E;QAQI,OAAO,qBAAY,SAAZ,C;O;KARX,C;4BAWA,C,gBAAA,E;MAOI,OAAqB,cAAd,4CAAc,EAAc,oCAAd,C;K;4BAGzB,C,gBAAA,E;MAOI,OAAqB,cAAd,4CAAc,EAAc,oCAAd,C;K;4BAGzB,C,gBAAA,E;MAOI,OAAqB,cAAd,4CAAc,EAAc,oCAAd,C;K;4BAGzB,C,gBAAA,E;MAOI,OAAqB,cAAd,4CAAc,EAAc,oCAAd,C;K;8BAGzB,C,SAAA,E;MAMI,OAAqB,gBAAd,4CAAc,C;K;8BAGzB,C,SAAA,E;MAMI,OAAqB,gBAAd,4CAAc,C;K;8BAGzB,C,SAAA,E;MAMI,OAAqB,gBAAd,4CAAc,C;K;8BAGzB,C,SAAA,E;MAMI,OAAqB,gBAAd,4CAAc,C;K;4BAGzB,C,SAAA,E;MAQW,Q;MAAP,OAAO,sDAAmB,IAAnB,EAAyB,GAAzB,EAA8B,GAA9B,2BAAsC,M;K;8BAGjD,C,SAAA,E;MAQW,Q;MAAP,OAAO,sDAAmB,IAAnB,EAAyB,GAAzB,EAA8B,GAA9B,2BAAsC,M;K;8BAGjD,C,SAAA,E;MAQW,Q;MAAP,OAAO,sDAAmB,IAAnB,EAAyB,GAAzB,EAA8B,GAA9B,2BAAsC,M;K;8BAGjD,C,SAAA,E;MAQW,Q;MAAP,OAAO,sDAAmB,IAAnB,EAAyB,GAAzB,EAA8B,GAA9B,2BAAsC,M;K;sFAGjD,uBAAA,E;MvBhtFA,8C;MuBgtFA,iB,+DAAA,E;QAmB6D,iC;UAAA,oBAAyB,C;QAAG,0B;UAAA,aAAkB,C;QAAG,wB;UAAA,qBAAgB,I;QvB/sF1H,oBuBgtFA,OvBhtFA,EuBgtFiB,WvBhtFjB,CuBgtF6B,OvBhtF7B,EuBgtFsC,iBvBhtFtC,EuBgtFyD,UvBhtFzD,EuBgtFqE,QvBhtFrE,C;QuBitFA,OAAO,W;O;KArBX,C;wFAwBA,uBAAA,E;MvBhtFA,8C;MuBgtFA,iB,+DAAA,E;QAmB+D,iC;UAAA,oBAAyB,C;QAAG,0B;UAAA,aAAkB,C;QAAG,wB;UAAA,qBAAgB,I;QvB/sF5H,oBuBgtFA,OvBhtFA,EuBgtFiB,WvBhtFjB,CuBgtF6B,OvBhtF7B,EuBgtFsC,iBvBhtFtC,EuBgtFyD,UvBhtFzD,EuBgtFqE,QvBhtFrE,C;QuBitFA,OAAO,W;O;KArBX,C;wFAwBA,uBAAA,E;MvBhzFA,8C;MuBgzFA,iB,+DAAA,E;QAmB+D,iC;UAAA,oBAAyB,C;QAAG,0B;UAAA,aAAkB,C;QAAG,wB;UAAA,qBAAgB,I;QvB/yF5H,oBuBgzFA,OvBhzFA,EuBgzFiB,WvBhzFjB,CuBgzF6B,OvBhzF7B,EuBgzFsC,iBvBhzFtC,EuBgzFyD,UvBhzFzD,EuBgzFqE,QvBhzFrE,C;QuBizFA,OAAO,W;O;KArBX,C;wFAwBA,uBAAA,E;MvBhzFA,8C;MuBgzFA,iB,+DAAA,E;QAmBiE,iC;UAAA,oBAAyB,C;QAAG,0B;UAAA,aAAkB,C;QAAG,wB;UAAA,qBAAgB,I;QvB/yF9H,oBuBgzFA,OvBhzFA,EuBgzFiB,WvBhzFjB,CuBgzF6B,OvBhzF7B,EuBgzFsC,iBvBhzFtC,EuBgzFyD,UvBhzFzD,EuBgzFqE,QvBhzFrE,C;QuBizFA,OAAO,W;O;KArBX,C;kFAwBA,uBAAA,E;MAAA,uC;MAAA,iB,SAAA,E;QASI,OAAO,mBvBpoFiB,UuBooFP,OvBpoFO,QuBooFjB,C;O;KATX,C;oFAYA,uBAAA,E;MAAA,gD;MAAA,yC;MAAA,iB,SAAA,E;QASI,OAAO,oBAAmB,iBAAR,OAAQ,CAAnB,C;O;KATX,C;oFAYA,uBAAA,E;MAAA,yC;MAAA,iB,SAAA,E;QASI,OAAO,oBvBhrFiB,UuBgrFN,OvBhrF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X,C;mFAmBA,uBAAA,E;MrC5gTA,6B;MqC4gTA,iB,mBAAA,E;QAaoB,Q;QADhB,UrC9gTmC,cqC8gTnB,CrC9gTmB,C;QqC+gTnB,2B;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UACZ,MrC51TiD,cqC41TjD,GrC51TgE,CAAL,IAAK,GqC41TzD,SAAS,OAAT,CrC51TyD,CAAW,IAAX,IAAf,C;;QqC81TrD,OAAO,G;O;KAhBX,C;mFAmBA,uBAAA,E;MrC/hTA,6B;MqC+hTA,iB,mBAAA,E;QAaoB,Q;QADhB,UrCjiTmC,cqCiiTnB,CrCjiTmB,C;QqCkiTnB,2B;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UACZ,MrC/2TiD,cqC+2TjD,GrC/2TgE,CAAL,IAAK,GqC+2TzD,SAAS,OAAT,CrC/2TyD,CAAW,IAAX,IAAf,C;;QqCi3TrD,OAAO,G;O;KAhBX,C;mFAmBA,uBAAA,E;MnB/iTA,+B;MmB+iTA,iB,mBAAA,E;QAaoB,Q;QADhB,UnBhjTqC,eAAW,oBmBgjT/B,CnBhjT+B,CAAX,C;QmBijTrB,2B;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UACZ,MnB/3TmD,emB+3TnD,GnB/3TmE,CAAL,IAAK,KmB+3T5D,SAAS,OAAT,CnB/3T4D,CAAW,IAAX,CAAhB,C;;QmBi4TvD,OAAO,G;O;KAhBX,C;mFAmBA,uBAAA,E;MnBlkTA,+B;MmBkkTA,iB,mBAAA,E;QAaoB,Q;QADhB,UnBnkTqC,eAAW,oBmBmkT/B,CnBnkT+B,CAAX,C;QmBokTrB,2B;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UACZ,MnBl5TmD,emBk5TnD,GnBl5TmE,CAAL,IAAK,KmBk5T5D,SAAS,OAAT,CnBl5T4D,CAAW,IAAX,CAAhB,C;;QmBo5TvD,OAAO,G;O;KAhBX,C;mFAmBA,uBAAA,E;MnBrlTA,+B;MmBqlTA,iB,mBAAA,E;QAaoB,Q;QADhB,UnBtlTqC,eAAW,oBmBslT/B,CnBtlT+B,CAAX,C;QmBulTrB,2B;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UACZ,MnBr6TmD,emBq6TnD,GnBr6TmE,CAAL,IAAK,KmBq6T5D,SAAS,OAAT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2B;MACjB,wBAAgB,SAAhB,gB;QAAgB,cAAA,SAAhB,M;QACI,MnBh1UmD,UmBg1UnD,GnBh1UmE,CAAL,IAAK,KmBg1U5D,OnBh1U4D,CAAW,IAAX,CAAhB,C;;MmBk1UvD,OAAO,G;K;mBAGX,C,SAAA,E;MAQoB,Q;MADhB,UAAgB,W;MAChB,wBAAgB,SAAhB,gB;QAAgB,cAAA,SAAhB,M;QACI,MrCj2UiD,SqCi2UjD,GrCj2UgE,CAAL,IAAK,IDqPjC,SsC4mUxB,OtC5mU6B,CAAK,IAAL,GAAiB,GAAtB,CCrPiC,EAAW,IAAX,IAAf,C;;MqCm2UrD,OAAO,G;K;mBAGX,C,SAAA,E;MAQoB,Q;MADhB,UAAgB,W;MAChB,wBAAgB,SAAhB,gB;QAAgB,cAAA,SAAhB,M;QACI,MrC/2UiD,SqC+2UjD,GrC/2UgE,CAAL,IAAK,ICsPjC,SoCynUxB,OpCznU6B,CAAK,IAAL,GAAiB,KAAtB,CDtPiC,EAAW,IAAX,IAAf,C;;MqCi3UrD,OAAO,G;K;+EAGX,uBAAA,E;MAAA,0C;MrCljUA,6B;MqCkjUA,iB,SAAA,E;QAOI,OrC/iUmC,cqC+iUpB,cAAR,OAAQ,CrC/iUoB,C;O;KqCwiUvC,C;+EAUA,uBAAA,E;MAAA,0C;MnB7iUA,+B;MmB6iUA,iB,SAAA,E;QAOI,OnB1iUsC,emB0iUvB,cAAR,OAAQ,CnB1iUuB,C;O;KmBmiU1C,C;+EAUA,uBAAA,E;MAAA,sC;MrCtkUA,6B;MqCskUA,iBAOiB,uBAAA,E;QtCnqUb,6B;wBsCmqUa,C,EAAA,E;UAAE,OtC1pUoB,csC0pUpB,EtC1pUyB,CAAK,IAAL,GAAiB,GAAtB,C;S;OsC0pUtB,C;MAPjB,iB,SAAA,E;QA7iBoB,Q;QADhB,UrC9gTmC,cqC8gTnB,CrC9gTmB,C;QqC+gTnB,2B;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UACZ,MrC51TiD,cqC41TjD,GrC51TgE,CAAL,IAAK,IDqPjC,csCumTf,OtCvmToB,CAAK,IAAL,GAAiB,GAAtB,CCrPiC,EAAW,IAAX,IAAf,C;;QqC+4UrD,OAjjBO,G;O;KA0iBX,C;+EAUA,uBAAA,E;MAAA,sC;MrC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+D,asBoiB/D,StBpiB+D,CAAkB,IAAlB,EsBoiBxD,KtBpiBwD,CsBoiBlD,YtBpiBkD,CAA8B,IAA9B,CsBoiB/D,K;UAAmC,OAAN,KAAM,a;;UAC3B,gB;;MAHZ,W;K;mBCvlBJ,C,SAAA,E;MAUoB,Q;MADhB,UAAgB,W;MACA,2B;MAAhB,OAAgB,cAAhB,C;QAAgB,yB;QACZ,MzCoDiD,SyCpDjD,GzCoDgE,CAAL,IAAK,GyCpDzD,OzCoDyD,CAAW,IAAX,IAAf,C;;MyClDrD,OAAO,G;K;mBAGX,C,SAAA,E;MAUoB,Q;MADhB,UAAiB,2B;MACD,2B;MAAhB,OAAgB,cAAhB,C;QAAgB,yB;QACZ,MvBuCmD,UuBvCnD,GvBuCmE,CAAL,IAAK,KuBvC5D,OvBuC4D,CAAW,IAAX,CAAhB,C;;MuBrCvD,OAAO,G;K;mBAGX,C,SAAA,E;MAUoB,Q;MADhB,UAAgB,W;MACA,2B;MAAhB,OAAgB,cAAhB,C;QAAgB,yB;QACZ,MzCoBiD,SyCpBjD,GzCoBgE,CAAL,IAAK,IDqPjC,S0CzQxB,O1CyQ6B,CAAK,IAAL,GAAiB,GAAtB,CCrPiC,EAAW,IAAX,IAAf,C;;MyClBrD,OAAO,G;K;mBAGX,C,SAAA,E;MAUoB,Q;MADhB,UAAgB,W;MACA,2B;MAAhB,OAAgB,cAAhB,C;QAAgB,yB;QACZ,MzCIiD,SyCJjD,GzCIgE,CAAL,IAAK,ICsPjC,SwC1PxB,OxC0P6B,CAAK,IAAL,GAAiB,KAAtB,CDtPiC,EAAW,IAAX,IAAf,C;;MyCFrD,OAAO,G;K;;;;;6CCwCP,C,KAAA,E;MAAA,qE;MAAgB,4B;MANpB,uC;MAMI,Y;K;+CACA,C,cAAA,E;MAAA,qE;MAAgC,wBAAM,OAAN,Q;MAPpC,uC;MAOI,Y;K;+CACA,C,qBAAA,E;MAAA,qE;MAAmD,6BAAM,OAAN,EAAe,KAAf,C;MARvD,uC;MAQI,Y;K;+CACA,C,YAAA,E;MAAA,qE;MAAiC,wBAAM,KAAN,Q;MATrC,uC;MASI,Y;K;iCCzGJ,CAAA,E;K;;;;kCCuBoC,C,OAAA,E;8BAAsC,O;;K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDC0RtE,C,iBAAA,E;MASI,MAAM,yB;K;;;;;;;mDAyDV,C,UAAA,E;MASI,OAAO,I;K;;;;;;;;;;;;;;;;;;;;iBC1Xf,CAAA,E;MAAA,oB;K;uCAII,CAAA,E;MAA0B,oB;K;;;6BAJ9B,CAAA,E;MAAA,2B;QAAA,U;;MAAA,oB;K;6BCEA,C,aAAA,E;MAAA,e;MAAA,iB;MAAA,uB;K;wCAAA,CAAA,E;MAAA,wCAAA,E;O;MAII,kE;MAEA,wF;MAEA,oF;MAEA,wE;MAEA,kE;MAEA,oF;MAEA,sF;MAEA,8E;MAEA,wE;MAEA,sF;MAEA,uF;MAEA,iE;MAEA,6E;MAEA,iE;MAEA,2E;K;;+CA5BA,CAAA,E;MAAA,6B;MAAA,sC;K;;0DAEA,CAAA,E;MAAA,6B;MAAA,iD;K;;wDAEA,CAAA,E;MAAA,6B;MAAA,+C;K;;kDAEA,CAAA,E;MAAA,6B;MAAA,yC;K;;+CAEA,CAAA,E;MAAA,6B;MAAA,sC;K;;wDAEA,CAAA,E;MAAA,6B;MAAA,+C;K;;yDAEA,CAAA,E;MAAA,6B;MAAA,gD;K;;qDAEA,CAAA,E;MAAA,6B;MAAA,4C;K;;kDAEA,CAAA,E;MAAA,6B;MAAA,yC;K;;yDAEA,CAAA,E;MAAA,6B;MAAA,gD;K;;yDAEA,CAAA,E;MAAA,6B;MAAA,gD;K;;8CAEA,CAAA,E;MAAA,6B;MAAA,qC;K;;oDAEA,CAAA,E;MAAA,6B;MAAA,2C;K;;8CAEA,CAAA,E;MAAA,6B;MAAA,qC;K;;mDAEA,CAAA,E;MAAA,6B;MAAA,0C;K;;oCAhCJ,CAAA,E;MAAA,+oB;K;;qCAAA,C,IAAA,E;MAAA,a;aAAA,O;UAAA,2C;aAAA,kB;UAAA,sD;aAAA,gB;UAAA,oD;aAAA,U;UAAA,8C;aAAA,O;UAAA,2C;aAAA,gB;UAAA,oD;aAAA,iB;UAAA,qD;aAAA,a;UAAA,iD;aAAA,U;UAAA,8C;aAAA,iB;UAAA,qD;aAAA,iB;UAAA,qD;aAAA,M;UAAA,0C;aAAA,Y;UAAA,gD;aAAA,M;UAAA,0C;aAAA,W;UAAA,+C;;UAAA,uE;;K;;gCAqCA,C,aAAA,E;MAAA,e;MAAA,iB;MAAA,uB;K;2CAAA,CAAA,E;MAAA,2CAAA,E;O;MAMI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,OAA7B,YAAsC,MAAtC,C;MiDrkCD,ejDskCD,OiDtkCC,EjDskCQ,SiDtkCR,EjDskCmB,OiDtkCnB,C;K;mBjDykChB,C,sCAAA,E;MAWkD,yB;QAAA,YAAiB,C;MAAG,uB;QAAA,oBAAe,M;MACjF,oCAAa,2BAAkB,SAAlB,EAA6B,OAA7B,YAAsC,MAAtC,C;MiDrlCD,ejDslCD,OiDtlCC,EjDslCQ,SiDtlCR,EjDslCmB,OiDtlCnB,C;K;mBjDylChB,C,sCAAA,E;MAW8C,yB;QAAA,YAAiB,C;MAAG,uB;QAAA,oBAAe,M;MAC7E,oCAAa,2BAAkB,SAAlB,EAA6B,OAA7B,YAAsC,MAAtC,C;MiDrmCD,ejDsmCD,OiDtmCC,EjDsmCQ,SiDtmCR,EjDsmCmB,OiDtmCnB,C;K;mBjDymChB,C,sCAAA,E;MAWgD,yB;QAAA,YAAiB,C;MAAG,uB;QAAA,oBAAe,M;MAC/E,oCAAa,2BAAkB,SAAlB,EAA6B,OAA7B,YAAsC,MAAtC,C;MiDrnCD,ejDsnCD,OiDtnCC,EjDsnCQ,SiDtnCR,EjDsnCmB,OiDtnCnB,C;K;mBjDynChB,C,sCAAA,E;MAWkD,yB;QAAA,YAAiB,C;MAAG,uB;QAAA,oBAAe,M;MACjF,oCAAa,2BAAkB,SAAlB,EAA6B,OAA7B,YAAsC,MAAtC,C;MiDroCD,ejDsoCD,OiDtoCC,EjDsoCQ,SiDtoCR,EjDsoCmB,OiDtoCnB,C;K;mBjDyoChB,C,sCAAA,E;MAWoD,yB;QAAA,YAAiB,C;MAAG,uB;QAAA,oBAAe,M;MACnF,oCAAa,2BAAkB,SAAlB,EAA6B,OAA7B,YAAsC,MAAtC,C;MiDrpCD,ejDspCD,OiDtpCC,EjDspCQ,SiDtpCR,EjDspCmB,OiDtpCnB,C;K;oBjDypChB,C,sCAAA,E;MAWsD,yB;QAAA,YAAiB,C;MAAG,uB;QAAA,oBAAe,M;MACrF,oCAAa,2BAAkB,SAAlB,EAA6B,OAA7B,YAAsC,MAAtC,C;MiDrqCD,ejDsqCD,OiDtqCC,EjDsqCQ,SiDtqCR,EjDsqCmB,OiDtqCnB,C;K;oBjDyqChB,C,sCAAA,E;MAWgD,yB;QAAA,YAAiB,C;MAAG,uB;QAAA,oBAAe,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A,E;MAQ2D,OAAA,IAAwB,CAAZ,QAAY,SAAQ,MAAR,EAAgB,UAAhB,C;K;2DAEnF,C,MAAA,E;MAQ8C,OAAA,IAAwB,CAAZ,QAAY,aAAY,MAAZ,C;K;2DAEtE,C,kBAAA,E;MASI,IAAI,MlG0GwC,YAAU,CkG1GlD,IAAoB,aAAa,CAArC,C;QAAwC,OAAO,E;MAC/C,OAAO,IAAwB,CAAZ,QAAY,aAAY,MAAZ,EAAoB,UAApB,C;K;qDAGnC,C,YAAA,E;MAWI,oCAAa,4BAAmB,KAAnB,OAA0B,MAA1B,C;MAEb,gBxG+CwF,KwG/C/E,QxG+C+E,WwG/C9D,CxG+C8D,EwG/C3D,KxG+C2D,CwG/C/E,YAA6B,KAA7B,IxG4CgE,KwG5C3B,QxG4C2B,WwG5CV,KxG4CU,C;MwG3CzE,OAAO,I;K;sDAGX,C,YAAA,E;MAQI,oCAAa,4BAAmB,KAAnB,OAA0B,MAA1B,C;MAEb,gBxGiCwF,KwGjC/E,QxGiC+E,WwGjC9D,CxGiC8D,EwGjC3D,KxGiC2D,CwGjC/E,uBAA6B,kBAA7B,IxG8BgE,KwG9B3B,QxG8B2B,WwG9BV,KxG8BU,C;MwG7BzE,OAAO,I;K;sDAGX,C,YAAA,E;MAUI,oCAAa,4BAAmB,KAAnB,OAA0B,MAA1B,C;MAEb,gBxGiBwF,KwGjB/E,QxGiB+E,WwGjB9D,CxGiB8D,EwGjB3D,KxGiB2D,CwGjB/E,GAAmC,eAAN,KAAM,CAAnC,GxGcgE,KwGdV,QxGcU,WwGdO,KxGcP,C;MwGbzE,OAAO,I;K;sDAGX,C,YAAA,E;MAaI,oCAAa,4BAAmB,KAAnB,OAA0B,MAA1B,C;MAEb,gBxGFwF,KwGE/E,QxGF+E,WwGE9D,CxGF8D,EwGE3D,KxGF2D,CwGE/E,GAAmC,SAAN,KAAM,CAAnC,GxGLgE,KwGKhB,QxGLgB,WwGKC,KxGLD,C;MwGMzE,OAAO,I;K;sDAGX,C,YAAA,E;MAWI,oCAAa,4BAAmB,KAAnB,OAA0B,MAA1B,C;MAEb,gBxGnBwF,KwGmB/E,QxGnB+E,WwGmB9D,CxGnB8D,EwGmB3D,KxGnB2D,CwGmB/E,GAAmC,SAAN,KAAM,CAAnC,GxGtBgE,KwGsBhB,QxGtBgB,WwGsBC,KxGtBD,C;MwGuBzE,OAAO,I;K;sDAGX,C,YAAA,E;MAUI,oCAAa,4BAAmB,KAAnB,OAA0B,MAA1B,C;MAEb,eAAe,wBAAS,M;MACxB,gBAAc,IxGpC0E,CwGoCrE,QxGpCqE,WwGoCpD,CxGpCoD,EwGoCjD,KxGpCiD,CwGoC1E,GAAkC,QAAlC,GAA6C,IxGvCc,CwGuCT,QxGvCS,WwGuCQ,KxGvCR,C;MwGwCzE,OAAO,I;K;yDAGX,C,SAAA,E;MAcI,IAAI,YAAY,CAAhB,C;QACI,MAAM,gCAAyB,0BAAuB,SAAvB,MAAzB,C;;MAGV,IAAI,kBAAa,MAAjB,C;QACI,gBxG3DoF,KwG2D3E,QxG3D2E,WwG2D1D,CxG3D0D,EwG2DvD,SxG3DuD,C;;QwG6DpF,kBAAU,MAAV,MAAuB,SAAvB,M;UACI,qCAAU,CAAV,C;;;K;yDAKZ,C,UAAA,E;MAQI,oCAAa,4BAAmB,UAAnB,OAA+B,MAA/B,C;MAEb,OxGhFyE,KwGgFlE,QxGhFkE,WwGgFjD,UxGhFiD,C;K;yDwGmF7E,C,oBAAA,E;MAQI,oCAAa,4BAAmB,UAAnB,EAA+B,QAA/B,OAAyC,MAAzC,C;MAEb,OxG1FwF,KwG0FjF,QxG1FiF,WwG0FhE,UxG1FgE,EwG0FpD,QxG1FoD,C;K;kDwG6F5F,CAAA,E;K;gDAcA,CAAA,E;MAAkC,oB;K;6CAElC,CAAA,E;MAOI,gBAAS,E;MACT,OAAO,I;K;mDAGX,C,YAAA,E;MAQI,oCAAa,2BAAkB,KAAlB,OAAyB,MAAzB,C;MAEb,gBxGlIwF,KwGkI/E,QxGlI+E,WwGkI9D,CxGlI8D,EwGkI3D,KxGlI2D,CwGkI/E,uBAA6B,kBAA7B,IxGrIgE,KwGqI3B,QxGrI2B,WwGqIV,QAAQ,CAAR,IxGrIU,C;K;wDwGwI7E,C,2BAAA,E;MAYI,yBAAkB,UAAlB,EAA8B,QAA9B,OAAwC,MAAxC,C;MAEA,gBAAc,IxGnJ0E,CwGmJrE,QxGnJqE,WwGmJpD,CxGnJoD,EwGmJjD,UxGnJiD,CwGmJ1E,GAAuC,KAAvC,GAA+C,IxGtJY,CwGsJP,QxGtJO,WwGsJU,QxGtJV,C;MwGuJzE,OAAO,I;K;2DAGX,C,4BAAA,E;MACI,IAA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O,W;K;4B4H9DX,C,qBAAA,E;MAQqD,kBAA1B,gBAAhB,sCAAgB,EAAc,IAAd,EAAoB,IAApB,C;MAAiC,sB5HoElD,W4HpEkD,C;MAAxD,O5HqEO,W;K;uB6HzFX,C,mBAAA,E;MAEkD,8B;MAAA,OCGN,aDHwB,yBAAa,QAAb,mCCGxB,C9G+xBgC,sB;K;uB6GhyB5E,C,qBAAA,E;MhJugIW,kBAAY,gB;MAoGH,Q;MAAhB,wBgJpmIqB,UhJomIrB,gB;QAAgB,cgJpmIK,UhJomIrB,M;QAAsB,IAAI,CgJpmIkB,sBhJomIP,OgJpmIO,ChJomItB,C;UAAyB,WAAY,WAAI,OAAJ,C;;MgJpmI3D,qBhJqmIO,W;MgJpmIP,I3I4NwD,C2I5NpD,c3I4NqD,U2I5NzD,C;Q7GgKuC,U;Q6G/JnC,qB7G+JyD,OAAtB,yC6G/Jd,S7G+Jc,uBAAsB,CAAO,W;QqGkO7C,kBAAhB,sB;QQ/XC,0C;QACA,IAAI,E7G8QoC,0BAAU,C6G9Q9C,CAAJ,C;UACI,2BAAO,GAAP,C;;QAEW,sCAAa,GAAb,C;QALnB,sB7H4DG,WqHoUqC,W;QQzXxC,OAAO,I;;MAGX,OAAO,K;K;0BAGX,C,qBAAA,E;MAOmB,c;oBhJgpYnB;A,QAFoB,Q;QAAhB,wBgJ9oYI,UhJ8oYJ,gB;UAAgB,cgJ9oYZ,UhJ8oYJ,M;UAAsB,IgJ9oYD,sBhJ8oYe,OgJ9oYf,ChJ8oYC,C;YAAwB,aAAO,I;YAAP,e;;;QAC9C,aAAO,K;;;MgJ/oYP,e;QACI,kBAA6B,MAAX,UAAW,C;Q7GyIM,U;Q6GxIb,a7GwImC,OAAtB,yC6GxIvB,S7GwIuB,uBAAsB,CAAO,W;Q6GxIX,kBC/BjB,aD+BD,MC/BC,C9Gg1C6C,uBAAzB,CAAyB,C;QbjmB9E,kBAAS,gB;QA2FA,U;QAAA,+B;QAAhB,OAAgB,gBAAhB,C;UAAgB,6B;UAAM,I0H3yB4C,4B1H2yB9B,S0H3yB8B,C1H2yB5C,C;YAAwB,WAAY,WAAI,SAAJ,C;;Q0H3yBtD,sBAAmF,e1H4yBhF,W0H5yBgF,EAAa,GAAb,C;QACnF,OAAO,I;;MAGX,OAAO,K;K;yBEnCP,C,SAAA,E;MAAQ,8BAAY,IAAZ,CAA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AAA,E;MAAQ,OAAU,S;K;sGAEd,C,SAAA,E;MAAQ,OAAc,a;K;gGAEzB,C,SAAA,E;MAAQ,OAAW,U;K;0FASxB,C,SAAA,E;MAAQ,OAAG,E;K;0FAEX,C,SAAA,E;MAAQ,OAAQ,O;K;gGAEb,C,SAAA,E;MAAQ,OAAW,U;K;gGAS3B,C,SAAA,E;MAAQ,OAAW,U;K;4FAErB,C,SAAA,E;MAAQ,OAAS,Q;K;8FAEhB,C,SAAA,E;MAAQ,OAAU,S;K;kGAShB,C,SAAA,E;MAAQ,OAAY,W;K;gGAErB,C,SAAA,E;MAAQ,OAAW,U;K;wGAEf,C,SAAA,E;MAAQ,OAAe,c;K;gGAE3B,C,SAAA,E;MAAQ,OAAW,U;K;gGAEnB,C,SAAA,E;MAAQ,OAAW,U;K;4FASrB,C,SAAA,E;MAAQ,OAAS,Q;K;0FAElB,C,SAAA,E;MAAQ,OAAQ,O;K;sFAElB,C,SAAA,E;MAAQ,OAAM,K;K;gGAET,C,SAAA,E;MAAQ,OAAW,U;K;8FASlB,C,SAAA,E;MAAQ,OAAU,S;K;8FAElB,C,SAAA,E;MAAQ,OAAU,S;K;sFASR,C,SAAA,E;MAAQ,OAAM,K;K;4FAEX,C,SAAA,E;MAAQ,OAAS,Q;K;wFAEnB,C,SAAA,E;MAAQ,OAAO,M;K;wFAS/B,C,SAAA,E;MAAQ,OAAO,M;K;0FAEd,C,SAAA,E;MAAQ,OAAQ,O;K;4FAEf,C,SAAA,E;MAAQ,OAAS,Q;K;4FAShB,C,SAAA,E;MAAQ,OAAQ,O;K;0FAEhB,C,SAAA,E;MAAQ,OAAQ,O;K;0FAEhB,C,SAAA,E;MAAQ,OAAQ,O;K;4FASd,C,SAAA,E;MAAQ,OAAQ,O;K;wFAElB,C,SAAA,E;MAAQ,OAAM,K;K;wFAEb,C,SAAA,E;MAAQ,OAAO,M;K;0FAEd,C,SAAA,E;MAAQ,OAAQ,O;K;4FAEf,C,SAAA,E;MAAQ,OAAS,Q;K;sFASd,C,SAAA,E;MAAQ,OAAM,K;K;8FAEV,C,SAAA,E;MAAQ,OAAU,S;K;4FAEnB,C,SAAA,E;MAAQ,OAAS,Q;K;oGAEb,C,SAAA,E;MAAQ,OAAa,Y;K;sGAEpB,C,SAAA,E;MAAQ,OAAc,a;K;4FAE3B,C,SAAA,E;MAAQ,OAAS,Q;K;sFAS1B,C,SAAA,E;MAAQ,OAAM,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AA,E;K;;6BCMA,CAAA,E;K;;iDA6BA,CAAA,E;K;;sCC5BA,CAAA,E;K;;gCAyBA,CAAA,E;K;;0BC6DqC,C,cAAA,E;MACjC,uB;QAAA,UAAsB,E;MACtB,qB;QAAA,+C;MADA,sB;MACA,kB;K;gCAEA,C,aAAA,E;MAAA,e;MAAA,iB;MAAA,uB;K;2CAAA,CAAA,E;MAAA,2CAAA,E;O;MAKI,4E;MAGA,wE;K;;oDAHA,CAAA,E;MAAA,gC;MAAA,2C;K;;kDAGA,CAAA,E;MAAA,gC;MAAA,yC;K;;uCARJ,CAAA,E;MAAA,2F;K;;wCAAA,C,IAAA,E;MAAA,a;aAAA,S;UAAA,gD;aAAA,O;UAAA,8C;;UAAA,+D;;K;;;kBA+ByB,C,WAAA,E;MACzB,8B;K;;sCAGJ,CAAA,E;K;;kCAyC6C,C,WAAA,E;MACzC,8B;K;;4BCpKqC,C,WAAA,E;MACrC,8B;K;;+BCD4C,CAAA,E;K;2DAI5C,C,OAAA,E;MAA6D,c;oBpJmsDjE;A,QAFoB,Q;QADhB,IAAI,mCAAsB,cAA1B,C;UAAqC,aAAO,K;UAAP,e;;QACrB,sB;QAAhB,OAAgB,cAAhB,C;UAAgB,2B;UAAM,IoJjsD6C,OpJisD/B,SoJjsD+B,UpJisD7C,C;YAAwB,aAAO,I;YAAP,e;;;QAC9C,aAAO,K;;;MoJlsDsD,iB;K;gEAE7D,C,QAAA,E;MACa,c;oBpJ2qDjB;A,QAFoB,Q;QADhB,IAAI,coJxqDA,QpJwqDA,iBoJxqDA,QpJwqDsB,UAA1B,C;UAAqC,aAAO,I;UAAP,e;;QACrB,OoJzqDZ,QpJyqDY,W;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UAAM,IAAI,CoJzqDP,oBpJyqDkB,OoJzqDlB,CpJyqDG,C;YAAyB,aAAO,K;YAAP,e;;;QAC/C,aAAO,I;;;MoJ1qDH,iB;K;oDAEJ,CAAA,E;MAAkC,qBAAQ,C;K;+CAEqB,C,uBAAA,E;MAAA,iB,EAAA,E;QAC3D,OAAI,OAAO,uBAAX,GAAiB,mBAAjB,GAA6C,SAAH,EAAG,C;O;K;qDADjD,CAAA,E;MAAkC,4BAAa,IAAb,EAAmB,GAAnB,EAAwB,GAAxB,kBAA6B,wCAA7B,C;K;oDAIlC,CAA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cAAO,YAAP,I;QAElB,IAAI,sBAAiB,MAArB,C;UACI,IAAI,eAAe,CAAnB,C;Y9JsSZ,e8JrSgB,a9JqShB,O8JrSqC,a9JqSrC,E8JrSkD,W9JqSlD,O8JrS+D,M9JqS/D,E8JrSqE,a9JqSrE,C;;Y8JnSgB,iCAAe,aAAf,CAA2B,MAA3B,I;YACA,sBAAsB,qBAAgB,MAAhB,I;YACtB,kBAAkB,mBAAY,MAAZ,GAAmB,WAAnB,I;YAElB,IAAI,eAAe,eAAnB,C;c9J+RhB,e8J9RoB,a9J8RpB,O8J9RyC,a9J8RzC,E8J9RsD,W9J8RtD,O8J9RmE,M9J8RnE,E8J9RyE,a9J8RzE,C;;cAAA,e8J5RoB,a9J4RpB,O8J5RyC,a9J4RzC,E8J5RsD,W9J4RtD,O8J5RmE,M9J4RnE,E8J5RyE,cAAO,WAAP,I9J4RzE,C;cAAA,e8J3RoB,a9J2RpB,O8J3RyC,a9J2RzC,E8J3RsD,C9J2RtD,E8J3RyD,cAAO,WAAP,I9J2RzD,E8J3R6E,a9J2R7E,C;;;;UAAA,e8JvRY,a9JuRZ,O8JvRiC,a9JuRjC,E8JvR8C,W9JuR9C,O8JvR2D,M9JuR3D,O8JvRiE,a9JuRjE,C8JvR6E,M9JuR7E,C;U8JtRY,IAAI,gBAAgB,aAApB,C;Y9JsRZ,e8JrRgB,a9JqRhB,O8JrRqC,a9JqRrC,E8JrRkD,mBAAY,MAAZ,GAAmB,YAAnB,I9JqRlD,E8JrRmF,C9JqRnF,E8JrRsF,a9JqRtF,C;;YAAA,e8JnRgB,a9JmRhB,O8JnRqC,a9JmRrC,E8JnRkD,mBAAY,MAAZ,GAAmB,YAAnB,I9JmRlD,E8JnRmF,C9JmRnF,E8JnRsF,Y9JmRtF,C;YAAA,e8JlRgB,a9JkRhB,O8JlRqC,a9JkRrC,E8JlRkD,C9JkRlD,E8JlRqD,Y9JkRrD,E8JlRmE,a9JkRnE,C;;;Q8J/QQ,cAAO,W;QACP,8BAAuB,mBAAY,gBAAgB,YAAhB,IAAZ,CAAvB,EAAkE,QAAlE,C;;QAIA,2BAA2B,gBAAgB,YAAhB,I;QAE3B,IAAI,gBAAgB,IAApB,C;UACI,IAAI,QAAO,YAAP,cAAuB,aAAvB,CAAmC,MAAvC,C;Y9JuQZ,e8JtQgB,a9JsQhB,O8JtQqC,a9JsQrC,E8JtQkD,oB9JsQlD,E8JtQwE,a9JsQxE,E8JtQuF,I9JsQvF,C;;Y8JpQgB,IAAI,6BAAwB,aAAxB,CAAoC,MAAxC,C;c9JoQhB,e8JnQoB,a9JmQpB,O8JnQyC,a9JmQzC,E8JnQsD,4BAAuB,aAAvB,CAAmC,MAAnC,I9JmQtD,E8JnQ+F,a9JmQ/F,E8JnQ8G,I9JmQ9G,C;;c8JjQoB,mBAAmB,OAAO,YAAP,QAAsB,aAAtB,CAAkC,MAAlC,I;c9JiQvC,e8JhQoB,a9JgQpB,O8JhQyC,a9JgQzC,E8JhQsD,C9JgQtD,E8JhQyD,OAAO,YAAP,I9JgQzD,E8JhQ8E,I9JgQ9E,C;cAAA,e8J/PoB,a9J+PpB,O8J/PyC,a9J+PzC,E8J/PsD,oB9J+PtD,E8J/P4E,a9J+P5E,E8J/P2F,OAAO,YAAP,I9J+P3F,C;;;;UAAA,e8J3PY,a9J2PZ,O8J3PiC,a9J2PjC,E8J3P8C,Y9J2P9C,E8J3P4D,C9J2P5D,E8J3P+D,I9J2P/D,C;U8J1PY,IAAI,6BAAwB,aAAxB,CAAoC,MAAxC,C;Y9J0PZ,e8JzPgB,a9JyPhB,O8JzPqC,a9JyPrC,E8JzPkD,4BAAuB,aAAvB,CAAmC,MAAnC,I9JyPlD,E8JzP2F,a9JyP3F,O8JzP0G,a9JyP1G,C8JzPsH,M9JyPtH,C;;YAAA,e8JvPgB,a9JuPhB,O8JvPqC,a9JuPrC,E8JvPkD,C9JuPlD,E8JvPqD,mBAAY,MAAZ,GAAmB,YAAnB,I9JuPrD,O8JvPsF,a9JuPtF,C8JvPkG,M9JuPlG,C;YAAA,e8JtPgB,a9JsPhB,O8JtPqC,a9JsPrC,E8JtPkD,oB9JsPlD,E8JtPwE,a9JsPxE,E8JtPuF,mBAAY,MAAZ,GAAmB,YAAnB,I9JsPvF,C;;;Q8JnPQ,8BAAuB,aAAvB,EAAsC,QAAtC,C;;MAGJ,OAAO,I;K;gDAGX,C,KAAA,E;MACI,oCAAa,2BAAkB,KAAlB,OAAyB,IAAzB,C;MAjRN,Q;MAmRP,OAnRO,2BAQyC,mBAAY,cA2Q3B,KA3Q2B,IAAZ,CARzC,4D;K;gDAsRX,C,cAAA,E;MACI,oCAAa,2BAAkB,KAAlB,OAAyB,IAAzB,C;MAEb,oBAjRgD,mBAA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AAO,OAAP,CAArB,GAA0C,W;K;4BAErG,C,QAAA,E;MAImE,OAAS,cAAT,QAAS,C;K;gFAE5E,uBAAA,E;MAaA,gE;MAbA,iB,UAAA,E;QAyBI,WAAW,eAduE,IAcvE,C;QcTX,iBAAc,CAAd,UdLkF,IcKlF,U;UdU6B,eAf2D,IAevD,CcTtB,KdSsB,CAAJ,C;;QAfyC,OAgB/D,I;O;KA3BX,C;8FAaA,uBAAA,E;MAAA,gE;MAAA,iB,UAAA,E;QAYI,WAAW,eAAa,IAAb,C;QcTX,iBAAc,CAAd,UdUO,IcVP,U;UdU6B,eAAI,KcTtB,KdSsB,CAAJ,C;;QAC7B,OAAO,I;O;KAdX,C;wFAiBA,uBAAA,E;MkBlGA,+D;MlBkGA,iB,aAAA,E;QkB9F0B,gBAAf,gB;QlB+GkB,actGzB,W;QdsGA,OcrGO,SIVoC,Q;O;KlB8F/C,C;yFAyBA,uBAAA,E;MkBpHA,4E;MAAA,gE;MlBoHA,iB,uBAAA,E;QkBhHI,qBlBqIyB,QkBrIzB,C;QAC8B,gBAAvB,elBoIkB,QkBpIlB,C;QlBoI4B,acnInC,W;QdmIA,OclIO,SIF4C,Q;O;KlB+GvD,C;2BAkCI,C,SAAA,E;MAAQ,uBAAG,iBAAO,CAAP,IAAH,C;K;6BAQR,C,SAAA,E;MAAQ,iBAAK,IAAL,GAAY,CAAZ,I;K;qGAEZ,C,SAAA,E;MAK4D,QAAC,mB;K;2GAE7D,C,SAAA,E;MAWI,OAAO,qBAAgB,SAAK,U;K;sFAGhC,uBAAA,E;MAAA,qD;MAAA,iB,SAAA,E;QAKgE,uCAAQ,W;O;KALxE,C;sFAOA,uBAAA,E;MAAA,qD;MAAA,iB,SAAA,E;QAKoD,uCAAQ,W;O;KAL5D,C;+FAOA,C,uBAAA,E;MASI,OAAI,mBAAJ,GAAe,cAAf,GAAmC,S;K;qGAGvC,C,mBAAA,E;MAQoH,OAAA,SAAK,qBAAY,QAAZ,C;K;uBAGzH,C,iBAAA,E;MAK+E,kBAAhB,0B;MAAwB,+B;MAAxB,OcxNpD,W;K;iCd2NX,C,SAAA,E;MAAkD,kBAAM,IAAN,C;aAC9C,C;UAD8C,OACzC,W;aACL,C;UAF8C,OAEzC,OAAO,sBAAK,CAAL,CAAP,C;;UAFyC,OAGtC,S;;K;yBAGZ,C,s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AqB,IAArB,EAA2B,KAA3B,C;MAEA,iBAAiB,K3M+QgB,I2M/QhB,GAAiB,W;MAClC,kBAAkB,M3M8Qe,I2M9Qf,GAAkB,W;MAEpC,mBAAmB,0BAAQ,UAAR,EAAoB,WAApB,IAAqC,W;MACxD,O3MgXmC,S2MhX5B,Y3MgX4B,C;K;uB2M7WvC,C,gBAAA,E;MAWI,IAAA,KAAM,UAAN,C;QAAmB,MAAM,gCAAyB,uCAAoC,KAA7D,C;;QACzB,I3MGkE,Y2MHlE,K3MGkE,C2MH5D,I3MG4D,CAAiB,IAAjB,E2MHrD,4B3MGqD,C2MHhD,S3MGgD,CAA6B,IAA7B,C2MHlE,K;UAFiD,OAElB,sBAAS,KAAT,CAAe,KAAf,E3MqBsB,S2MrBA,K3MqBe,C2MrBT,I3MqBS,CAAL,IAAK,I2MrBF,W3MqBE,EAAW,IAAX,IAAf,C2MrBtB,C;;UAC/B,I3MEkE,Y2MFlE,K3MEkE,C2MF5D,K3ME4D,CAAiB,IAAjB,E2MFpD,4B3MEoD,C2MF/C,S3ME+C,CAA6B,IAA7B,C2MFlE,K;YAHiD,O3MuBI,S2MpBrB,sB3MiCsB,S2MjCb,K3MiC4B,C2MjCtB,K3MiCsB,CAAL,IAAK,I2MjCd,W3MiCc,EAAY,IAAZ,IAAf,C2MjCtB,EAA2B,KAA3B,CAAiC,IAAjC,C3MoBoC,CAAL,IAAK,I2MpBK,W3MoBL,EAAW,IAAX,IAAf,C;;Y2MvBJ,OAIzC,mB;;;K;sBAGZ,C,SAAA,E;MAOuC,OzLoWG,UyLpWH,oBzLoWG,C;K;wByLlW1C,C,gBAAA,E;MASmD,8BAAU,2BAAV,EAAe,KAAf,C;K;wBAEnD,C,sBAAA,E;MAUI,sBAAsB,IAAtB,EAA4B,KAA5B,C;MAEA,iBAAiB,KzLkOkB,IyLlOlB,8B;MACjB,kBAAkB,MzLiOiB,IyLjOjB,8B;MAElB,mBAAmB,2BAAS,UAAT,EAAqB,WAArB,+B;MACnB,OzLuUsC,UyLvU/B,YzLuU+B,C;K;wByLpU1C,C,gBAAA,E;MAWI,IAAA,KAAM,UAAN,C;QAAmB,MAAM,gCAAyB,uCAAoC,KAA7D,C;;QACzB,IzL7CmE,ayL6CnE,KzL7CmE,CyL6C7D,IzL7C6D,CAAkB,IAAlB,EyL6CtD,6BzL7CsD,CyL6ChD,SzL7CgD,CAA8B,IAA9B,CyL6CnE,K;UAFoD,OAEpB,uBAAU,KAAV,CAAgB,KAAhB,EzLhCuB,UyLgCA,KzLhCgB,CyLgCV,IzLhCU,CAAL,IAAK,MlBgRlC,UAAW,qB2MhPoB,W3MgPpB,EAAL,IAAK,CAAL,iBAAN,CkBhRkC,EAAW,IAAX,CAAhB,CyLgCvB,C;;UAChC,IzL9CmE,ayL8CnE,KzL9CmE,CyL8C7D,KzL9C6D,CAAkB,IAAlB,EyL8CrD,6BzL9CqD,CyL8C/C,SzL9C+C,CAA8B,IAA9B,CyL8CnE,K;YAHoD,OzL9BG,UyLiCtB,uBzLpBuB,UyLoBb,KzLpB6B,CyLoBvB,KzLpBuB,CAAL,IAAK,WlBmQnC,UAAW,qB2M/OS,W3M+OT,EAAL,IAAK,CAAL,iBAAN,CkBnQmC,EAAY,IAAZ,CAAhB,CyLoBvB,EAA4B,KAA5B,CAAkC,IAAlC,CzLjCsC,CAAL,IAAK,MlBgRlC,UAAW,qB2M/O2B,W3M+O3B,EAAL,IAAK,CAAL,iBAAN,CkBhRkC,EAAW,IAAX,CAAhB,C;;YyL8BH,OAI5C,oB;;;K;uBAGZ,C,gBAAA,E;MAQI,4BAAU,KAAV,CtKg/FO,OsKh/FP,C;MACA,OAAO,K;K;yBAGX,C,eAAA,E;MAKsD,OtK+iG3C,esK/iG2C,4BAAU,IAAV,CtK+iG3C,C;K;yBsK7iGX,C,oCAAA,E;MAOgD,yB;QAAA,YAAiB,C;MAAG,uB;QAAA,UAAe,KAAf,CAAqB,I;MACrF,4BAAU,KAAV,CtK69FO,OsK79FP,EAA+B,SAA/B,EAA0C,OAA1C,C;MACA,OAAO,K;K;iCAIX,C,WAAA,E;M9LrHI,IAAI,Eb2B8D,Y2M0FD,K3M1FC,CAAiB,IAAjB,E2M0FO,I3M1FP,CAA6B,IAA7B,C2M0FD,I9LrH7D,CAAJ,C;QACI,c8LoH6E,+B;Q9LnH7E,MAAM,gCAAyB,OAAQ,WAAjC,C;;K;kC8LoHd,C,WAAA,E;M9LtHI,IAAI,EKmC+D,ayLmFC,KzLnFD,CAAkB,IAAlB,EyLmFS,IzLnFT,CAA8B,IAA9B,CyLmFC,I9LtHhE,CAAJ,C;QACI,c8LqHgF,+B;Q9LpHhF,MAAM,gCAAyB,OAA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mB,KmBAnB,C;O;KnBFtD,C;0FAIA,uBAAA,E;MAgMA,6B;MClLA,kD;MDdA,iB,KAAA,E;QAMqD,OCcD,cDqLjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CCrLiB,EDqLjB,cAnMoC,KAmM/B,CAAK,IAAL,GAAiB,GAAtB,CCrLiB,C;O;KDpBpD,C;0FAOA,uBAAA,E;MAyLA,6B;MClLA,kD;MDPA,iB,KAAA,E;QAMsD,OCOF,cDqLjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CCrLiB,ECsLjB,cF7LqC,KE6LhC,CAAK,IAAL,GAAiB,KAAtB,CDtLiB,C;O;KDbpD,C;0FAOA,uBAAA,E;MAkLA,6B;MClLA,kD;MDAA,iB,KAAA,E;QAMoD,OCAA,cDqLjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CCrLiB,EDAkB,KCAlB,C;O;KDNpD,C;0FAOA,uBAAA,E;MAqLA,WAS6D,wB;MAT7D,+B;MmBrLA,oD;MnBAA,iB,KAAA,E;QAMsD,OmBAA,enBwLjB,eAAW,yBAAL,IAAK,CAAL,UAAN,CmBxLiB,EnBAmB,KmBAnB,C;O;KnBNtD,C;oGAQA,uBAAA,E;MAmKA,6B;MCvMA,4C;MDoCA,iB,KAAA,E;QAMiD,OCxCG,WD8MjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CC9MiB,ED8MjB,cAtKqC,KAsKhC,CAAK,IAAL,GAAiB,GAAtB,CC9MiB,C;O;KDkCpD,C;oGAOA,uBAAA,E;MA4JA,6B;MCvMA,4C;MD2CA,iB,KAAA,E;QAMkD,OC/CE,WD8MjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CC9MiB,EC+MjB,cFhKsC,KEgKjC,CAAK,IAAL,GAAiB,KAAtB,CD/MiB,C;O;KDyCpD,C;oGAOA,uBAAA,E;MAqJA,6B;MCvMA,4C;MDkDA,iB,KAAA,E;QAMgD,OCtDI,WD8MjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CC9MiB,EDsDmB,KCtDnB,C;O;KDgDpD,C;oGAOA,uBAAA,E;MAwJA,WAS6D,wB;MAT7D,+B;MmB9MA,8C;MnBsDA,iB,KAAA,E;QAMkD,OmB1DI,YnBqNjB,eAAW,yBAAL,IAAK,CAAL,UAAN,CmBrNiB,EnB0DoB,KmB1DpB,C;O;KnBoDtD,C;0FAQA,uBAAA,E;MAsIA,6B;MClLA,kD;MDiPJ,0B;MAAA,+B;MArMI,iB,KAAA,E;QAQ6C,OAwMR,eAAW,OCtPI,cDqLjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CCrLiB,EDqLjB,cAvI4B,KAuIvB,CAAK,IAAL,GAAiB,GAAtB,CCrLiB,CDsPJ,CC1DX,ID0DW,CAAX,C;O;KAhNrC,C;0FASA,uBAAA,E;MA6HA,6B;MClLA,kD;MCkPJ,4B;MAAA,iC;MF7LI,iB,KAAA,E;QAQ+C,OEgMR,gBAAY,QDvPC,cDqLjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CCrLiB,ECsLjB,cF/H8B,KE+HzB,CAAK,IAAL,GAAiB,KAAtB,CDtLiB,CCuPD,CDjDZ,ICiDY,CAAZ,C;O;KFxMvC,C;0FASA,uBAAA,E;MAoHA,6B;MClLA,kD;MD8DA,iB,KAAA,E;QAQ2C,OChES,cDqLjB,cAAK,KAAK,IAAL,GAAiB,GAAtB,CCrLiB,EDgES,KChET,C;O;KDwDpD,C;0FASA,uBAAA,E;MAqHA,WAS6D,wB;MAT7D,+B;MmBrLA,oD;MnBgEA,iB,KAAA,E;QAQ6C,OmBlES,enBwLjB,eAAW,yBAAL,IAAK,CAAL,UAAN,CmBxLiB,EnBkEU,KmBlEV,C;O;KnB0DtD,C;0EAUA,uBAAA,E;MAAA,0B;MAAA,+B;MAAA,iBAAA,E;QAM0C,sBAAW,YAAL,IAAK,KAAX,C;O;KAN1C,C;0EAQA,uBAAA,E;MAAA,0B;MAAA,+B;MAAA,iBAAA,E;QAM0C,sBAAW,YAAL,IAAK,KAAX,C;O;KAN1C,C;kGAQA,uBAAA,E;MAAA,8C;MAiFA,6B;MAjFA,iB,KAAA,E;QAE8D,0BAwF3B,cAAK,KAAK,IAAL,GAAiB,GAAtB,CAxF2B,EAwF3B,cAxFoD,KAwF/C,CAAK,IAAL,GAAiB,GAAtB,CAxF2B,C;O;KAF9D,C;wGAIA,uBAAA,E;MAAA,yC;MA6EA,6B;MA7EA,iB,KAAA,E;QAQiE,aA8E9B,cAAK,KAAK,IAAL,GAAiB,GAAtB,CA9E8B,EA8E9B,cA9EkD,KA8E7C,CAAK,IAAL,GAAiB,GAAtB,CA9E8B,C;O;KARjE,C;0FAUA,uBAAA,E;MAAA,+B;MiMlPJ,0B;MjMkPI,iB,KAAA,E;QAEmD,sBiMjPgC,OjMiP1B,IiMjPN,CjMiPW,IiMjPX,GjMiPoB,KiMjPpB,CjMiP0B,IiMjPM,CjMiPhC,C;O;KAFnD,C;wFAGA,uBAAA,E;MAAA,+B;MiMhPJ,0B;MjMgPI,iB,KAAA,E;QAEkD,sBiM/O+B,OjM+OzB,IiM/ON,CjM+OW,IiM/OX,GjM+OmB,KiM/OnB,CjM+OyB,IiM/OM,CjM+O/B,C;O;KAFlD,C;0FAGA,uBAAA,E;MAAA,+B;MiM9OJ,0B;MjM8OI,iB,KAAA,E;QAEmD,sBiM7OgC,OjM6O1B,IiM7ON,CjM6OW,IiM7OX,GjM6OoB,KiM7OpB,CjM6O0B,IiM7OM,CjM6OhC,C;O;KAFnD,C;0EAGA,uBAAA,E;MAAA,+B;MiM5OJ,0B;MjM4OI,iBAAA,E;QAEiC,sBiM3OqB,OAAP,MjM2OR,IiM3Oe,CjM2OrB,C;O;KAFjC,C;yFAIA,CAAA,E;MASmC,gB;K;kFACnC,uBAAA,E;MiMpPJ,4B;MjMoPI,iBAAA,E;QASqC,OiM1PiD,QAAhC,KjM0PZ,IiM1PY,GjM0PE,GiM1P8B,C;O;KjMiPtF,C;uFAUA,CAAA,E;MASiC,YAAK,IAAL,GAAiB,G;K;gFAClD,uBAAA,E;MAAA,WASqD,wB;MATrD,iBAAA,E;QASmC,OAAK,yBAAL,IAAK,CAAL,U;O;KATnC,C;2FAWA,CAAA,E;MAEqC,W;K;oFACrC,uBAAA,E;MAAA,iC;MiMtRJ,4B;MjMsRI,iBAAA,E;QASuC,uBiM5R+C,QAAhC,KjM4RH,IiM5RG,GjM4RW,GiM5RqB,CjM4R/C,C;O;KATvC,C;gFAUA,uBAAA,E;MAAA,6B;MAAA,iBAAA,E;QASmC,qBAAK,KAAK,IAAL,GAAiB,GAAtB,C;O;KATnC,C;kFAUA,uBAAA,E;MAAA,WAS6D,wB;MAT7D,+B;MAAA,iBAAA,E;QASqC,sBAAW,yBAAL,IAAK,CAAL,UAAN,C;O;KATrC,C;2FAWA,CAAA,E;MAMqC,OApDJ,KAAK,IAAL,GAAiB,G;K;6FAqDlD,CAAA,E;MAMuC,OA3DN,KAAK,IAAL,GAAiB,G;K;wCA6DlD,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KApBpD,C;wFAOA,uBAAA,E;MC0LA,6B;MDnLA,kD;MAPA,iB,KAAA,E;QAMsD,OAOF,cAAc,IAAd,ECsLjB,cD7L4B,KC6LvB,CAAK,IAAL,GAAiB,KAAtB,CDtLiB,C;O;KAbpD,C;wFAOA,uBAAA,E;MAAA,kD;MAAA,iB,KAAA,E;QAMoD,qBAAc,IAAd,EAAoB,KAApB,C;O;KANpD,C;wFAOA,uBAAA,E;MAyMA,kBAS6D,sB;MAT7D,+B;MkBzMA,oD;MlBAA,iB,KAAA,E;QAMsD,OkBAA,elB4MjB,eAAW,yBAAL,IAAK,CAAL,iBAAN,CkB5MiB,ElBAmB,KkBAnB,C;O;KlBNtD,C;kGAQA,uBAAA,E;MDmKA,6B;MCvMA,4C;MAoCA,iB,KAAA,E;QAMiD,OAxCG,WAAW,IAAX,ED8MjB,cCtK4B,KDsKvB,CAAK,IAAL,GAAiB,GAAtB,CC9MiB,C;O;KAkCpD,C;kGAOA,uBAAA,E;MC6JA,6B;MDxMA,4C;MA2CA,iB,KAAA,E;QAMkD,OA/CE,WAAW,IAAX,EC+MjB,cDhK6B,KCgKxB,CAAK,IAAL,GAAiB,KAAtB,CD/MiB,C;O;KAyCpD,C;kGAOA,uBAAA,E;MAlDA,4C;MAkDA,iB,KAAA,E;QAMgD,OAtDI,WAAW,IAAX,EAsDA,KAtDA,C;O;KAgDpD,C;kGAOA,uBAAA,E;MA4KA,kBAS6D,sB;MAT7D,+B;MkBlOA,8C;MlBsDA,iB,KAAA,E;QAMkD,OkB1DI,YlByOjB,eAAW,yBAAL,IAAK,CAAL,iBAAN,CkBzOiB,ElB0DoB,KkB1DpB,C;O;KlBoDtD,C;wFAQA,uBAAA,E;MDsIA,6B;MClLA,kD;MDiPJ,0B;MAAA,+B;MCrMI,iB,KAAA,E;QAQ6C,ODwMR,eAAW,OCtPI,cAAc,IAAd,EDqLjB,cCvImB,KDuId,CAAK,IAAL,GAAiB,GAAtB,CCrLiB,CDsPJ,CC1DX,ID0DW,CAAX,C;O;KChNrC,C;wFASA,uBAAA,E;MC8HA,6B;MDnLA,kD;MCkPJ,4B;MAAA,iC;MD7LI,iB,KAAA,E;QAQ+C,OCgMR,gBAAY,QDvPC,cAAc,IAAd,ECsLjB,cD/HqB,KC+HhB,CAAK,IAAL,GAAiB,KAAtB,CDtLiB,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;MAPA,iB,KAAA,E;QAMqD,OAOC,eAAe,IAAf,ElB4MjB,eAAW,oBkBnNc,KlBmNd,CAAL,IAAK,CAAL,iBAAN,CkB5MiB,C;O;KAbtD,C;0FAOA,uBAAA,E;MAAA,oD;MAAA,iB,KAAA,E;QAMsD,sBAAe,IAAf,EAAqB,KAArB,C;O;KANtD,C;oGAQA,uBAAA,E;MnB6KA,WAS6D,wB;MAT7D,+B;MmB9MA,8C;MAiCA,iB,KAAA,E;QAMkD,OArCI,YAAY,IAAZ,EnBqNjB,eAAW,oBmBhLgB,KnBgLhB,CAAL,IAAK,CAAL,UAAN,CmBrNiB,C;O;KA+BtD,C;oGAOA,uBAAA,E;MjBuKA,aAS6D,0B;MAT7D,+B;MiB/MA,8C;MAwCA,iB,KAAA,E;QAMmD,OA5CG,YAAY,IAAZ,EjBsNjB,eAAW,oBiB1KiB,KjB0KjB,CAAL,IAAK,CAAL,YAAN,CiBtNiB,C;O;KAsCtD,C;oGAOA,uBAAA,E;MlBmLA,kBAS6D,sB;MAT7D,+B;MkBlOA,8C;MA+CA,iB,KAAA,E;QAMiD,OAnDK,YAAY,IAAZ,ElByOjB,eAAW,oBkBtLe,KlBsLf,CAAL,IAAK,CAAL,iBAAN,CkBzOiB,C;O;KA6CtD,C;oGAOA,uBAAA,E;MAtDA,8C;MAsDA,iB,KAAA,E;QAMkD,OA1DI,YAAY,IAAZ,EA0DA,KA1DA,C;O;KAoDtD,C;0FAQA,uBAAA,E;MnBgJA,WAS6D,wB;MAT7D,+B;MmBrLA,oD;MnBsPJ,0B;MAAA,+B;MmBjNI,iB,KAAA,E;QAQ6C,OnBoNP,eAAW,OmB3PK,eAAe,IAAf,EnBwLjB,eAAW,oBmBjJM,KnBiJN,CAAL,IAAK,CAAL,UAAN,CmBxLiB,CnB2PL,CmBrEZ,InBqEY,SAAX,C;O;KmB5NtC,C;0FASA,uBAAA,E;MjBwIA,aAS6D,0B;MAT7D,+B;MiBtLA,oD;MjBuPJ,4B;MAAA,iC;MiBzMI,iB,KAAA,E;QAQ+C,OjB4MP,gBAAY,QiB5PE,eAAe,IAAf,EjByLjB,eAAW,oBiBzIQ,KjByIR,CAAL,IAAK,CAAL,YAAN,CiBzLiB,CjB4PF,CiB5Db,IjB4Da,SAAZ,C;O;KiBpNxC,C;0FASA,uBAAA,E;MlBkJA,kBAS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C,C;4FASA,uBAAA,E;MAAA,wD;M7OyWA,6B;M6OzWA,iB,SAAA,E;QAOkD,O7O4WX,c6O5WmB,2B7OuQrB,I6OvQqB,C7O4WnB,C;O;K6OnXvC,C;gFASA,uBAAA,E;MAAA,4C;M7OgWA,6B;M6OhWA,iB,mBAAA,E;QAayD,O7O6VlB,c6O7V0B,qB7OwP5B,I6OxP4B,EAAW,QAAX,C7O6V1B,C;O;K6O1WvC,C;kFAgBA,uBAAA,E;MAAA,8C;M7OgVA,6B;M6OhVA,iB,mBAAA,E;QAa0D,O7O6UnB,c6O7U2B,sB7OwO7B,I6OxO6B,EAAY,QAAZ,C7O6U3B,C;O;K6O1VvC,C;oFAgBA,uBAAA,E;MAAA,gD;MAAA,iB,SAAA,E;QAM8C,OAAS,uB3N0OhB,I2N1OgB,C;O;KANvD,C;oGAQA,uBAAA,E;MAAA,gE;MAAA,iB,SAAA,E;QAMsD,OAAS,+B3NkOxB,I2NlOwB,C;O;KAN/D,C;sGAQA,uBAAA,E;MAAA,kE;MAAA,iB,SAAA,E;QAMuD,OAAS,gC3N0NzB,I2N1NyB,C;O;KANhE,C;8FAQA,uBAAA,E;MAAA,0D;M3NuTA,+B;M2NvTA,iB,SAAA,E;QAOqD,O3N0TX,e2N1ToB,4B3NiNvB,I2NjNuB,C3N0TpB,C;O;K2NjU1C,C;4FASA,uBAAA,E;MAAA,wD;M3N8SA,+B;M2N9SA,iB,SAAA,E;QAOoD,O3NiTV,e2NjTmB,2B3NwMtB,I2NxMsB,C3NiTnB,C;O;K2NxT1C,C;+EASA,uBAAA,E;MAAA,4C;M3NqSA,+B;M2NrSA,iB,mBAAA,E;QAa2D,O3NkSjB,e2NlS0B,qB3NyL7B,I2NzL6B,EAAW,QAAX,C3NkS1B,C;O;K2N/S1C,C;iFAeA,uBAAA,E;M3HgEA,4C;MhGsNA,+B;M2NtRA,iB,mBAAA,E;QAa4D,O3NmRlB,egGnNuB,qBhG0G1B,IgG1G0B,EAAW,C2HhEK,Q3HgEL,IAAX,ChGmNvB,C;O;K2NhS1C,C;oFAeA,uBAAA,E;M9OkKI,6B;M8OpTJ,gD;MAkJA,iB,SAAA,E;QAM8C,OAlJO,c9OuTd,cAAK,UAAK,IAAL,GAAiB,GAAtB,C8OvTc,E7OyShB,I6OzSgB,C;O;KA4IrD,C;oGAQA,uBAAA,E;M3H1GA,4B;M2H0GA,iB,SAAA,E;QAMsD,O3H1GK,YqH6FL,UxOoHf,IwOpHe,GAAY,GrH7FP,CqH6FN,GAA6C,EAA7C,I;O;KMOrD,C;sGAQA,uBAAA,E;MNbA,kE;MMaA,iB,SAAA,E;QAMuD,ONbkB,sBAAlB,UxO4GhB,IwO5GgB,GAAW,GAAO,C;O;KMOzE,C;8FAQA,uBAAA,E;MAAA,0D;M9OyMA,0B;MAAA,+B;M8OzMA,iB,SAAA,E;QAOqD,O9O6MZ,eAAW,O8O7MS,kB9O0GxB,UAAK,IAAL,GAAiB,G8O1GO,C9O6MT,CAAX,C;O;K8OpNzC,C;4FASA,uBAAA,E;MAAA,wD;M9OgMA,0B;MAAA,+B;M8OhMA,iB,SAAA,E;QAOoD,O9OoMX,eAAW,O8OpMQ,iB9OiGvB,UAAK,IAAL,GAAiB,G8OjGM,C9OoMR,CAAX,C;O;K8O3MzC,C;gFAUA,uBAAA,E;MAAA,4C;M9O+JA,+B;M8O/JA,iB,mBAAA,E;QAa2D,O9O4JjB,e8O5J0B,qB9O6D7B,I8O7D6B,EAAW,QAAX,C9O4J1B,C;O;K8OzK1C,C;kFAeA,uBAAA,E;MAAA,8C;M9OgJA,+B;M8OhJA,iB,mBAAA,E;QAa4D,O9O6IlB,e8O7I2B,sB9O8C9B,I8O9C8B,EAAY,QAAZ,C9O6I3B,C;O;K8O1J1C,C;oFAeA,uBAAA,E;M5O0FI,6B;M4OrTJ,gD;MA2NA,iB,SAAA,E;QAM+C,OA3NM,c5OwTd,cAAK,UAAK,IAAL,GAAiB,KAAtB,C4OxTc,E7OyShB,I6OzSgB,C;O;KAqNrD,C;oGAQA,uBAAA,E;M3HnLA,4B;M2HmLA,iB,SAAA,E;QAMuD,O3HnLI,YqHuKtD,UtOqDoC,IsOrDpC,GAAY,KrHvK0C,CqHuKvD,GAA+C,EAA/C,I;O;KMMJ,C;sGAQA,uBAAA,E;MNZA,kE;MMYA,iB,SAAA,E;QAMwD,ONZoB,sBAApB,UtO6Cf,IsO7Ce,GAAW,KAAS,C;O;KMM5E,C;8FAQA,uBAAA,E;MAAA,0D;M5OiIA,4B;MAAA,iC;M4OjIA,iB,SAAA,E;QAOuD,O5OqIZ,gBAAY,Q4OrIQ,kB5OkC1B,UAAK,IAAL,GAAiB,K4OlCS,C5OqIR,CAAZ,C;O;K4O5I3C,C;4FASA,uBAAA,E;MAAA,wD;M5OwHA,4B;MAAA,iC;M4OxHA,iB,SAAA,E;QAOsD,O5O4HX,gBAAY,Q4O5HO,iB5OyBzB,UAAK,IAAL,GAAiB,K4OzBQ,C5O4HP,CAAZ,C;O;K4OnI3C,C;gFAUA,uBAAA,E;MAAA,4C;M5OmGA,iC;M4OnGA,iB,mBAAA,E;QAa6D,O5OgGhB,gB4OhG0B,qB5OD9B,I4OC8B,EAAW,QAAX,C5OgG1B,C;O;K4O7G7C,C;kFAeA,uBAAA,E;MAAA,8C;M5OoFA,iC;M4OpFA,iB,mBAAA,E;QAa8D,O5OiFjB,gB4OjF2B,sB5OhB/B,I4OgB+B,EAAY,QAAZ,C5OiF3B,C;O;K4O9F7C,C;+BCtRA,C,OAAA,E;MAEI,S9OuIoD,c8OvI3C,C9OuI2C,E8OvIvC,C9OuIuC,C;M8OtIpD,S9OsIoD,c8OtI3C,C9OsI2C,E8OtIvC,C9OsIuC,C;M8OrIpD,O9OmDkE,Y8OnDvD,E9OmDuD,CAAiB,IAAjB,E8OnDjD,E9OmDiD,CAA6B,IAA7B,C8OnDvD,KAAX,G9OkFsD,S8OlFjC,E9OkFgD,CAAL,IAAK,G8OlF3C,E9OkF2C,CAAY,IAAZ,IAAf,C8OlFtD,G9OqEqD,SAAe,CAad,S8OlFpB,E9OkFmC,CAAL,IAAK,G8OlF9B,E9OkF8B,CAAY,IAAZ,IAAf,CAbc,EAAL,IAAK,G8OrExB,C9OqEwB,CAAW,IAAX,IAAf,C;K;+B8OlEzD,C,OAAA,E;MACI,S5NwIsD,e4NxI7C,C5NwI6C,E4NxIzC,C5NwIyC,C;M4NvItD,S5NuIsD,e4NvI7C,C5NuI6C,E4NvIzC,C5NuIyC,C;M4NtItD,O5NqDmE,a4NrDxD,E5NqDwD,CAAkB,IAAlB,E4NrDlD,E5NqDkD,CAA8B,IAA9B,C4NrDxD,KAAX,G5N+EwD,U4N/EnC,E5N+EmD,CAAL,IAAK,U4N/E9C,E5N+E8C,CAAY,IAAZ,CAAhB,C4N/ExD,G5NkEuD,UAAgB,CAaf,U4N/EtB,E5N+EsC,CAAL,IAAK,U4N/EjC,E5N+EiC,CAAY,IAAZ,CAAhB,CAbe,EAAL,IAAK,K4NlE3B,C5NkE2B,CAAW,IAAX,CAAhB,C;K;wC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,uBAAA,E;MA4NA,aAS6D,0B;MAT7D,+B;MA5NA,iB,KAAA,E;QAEwD,OiBAA,eAAgB,CjBmOnC,eAAW,yBAAL,IAAK,CAAL,YAAN,CiBnOmC,EAAL,IAAK,UjBAK,KiBAL,CAAY,IAAZ,CAAhB,C;O;KjBFxD,C;4FAIA,uBAAA,E;MA8MA,6B;MDxMA,4C;MCNA,iB,KAAA,E;QAEqD,ODMD,WC+MjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CD/MiB,ED8MjB,cEpNoC,KFoN/B,CAAK,IAAL,GAAiB,GAAtB,CC9MiB,C;O;KCRpD,C;4FAGA,uBAAA,E;MA2MA,6B;MDxMA,4C;MCHA,iB,KAAA,E;QAEsD,ODGF,WC+MjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CD/MiB,EC+MjB,cAlNqC,KAkNhC,CAAK,IAAL,GAAiB,KAAtB,CD/MiB,C;O;KCLpD,C;4FAGA,uBAAA,E;MAwMA,6B;MDxMA,4C;MCAA,iB,KAAA,E;QAEoD,ODAA,WC+MjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CD/MiB,ECAkB,KDAlB,C;O;KCFpD,C;4FAGA,uBAAA,E;MA+MA,aAS6D,0B;MAT7D,+B;MiB/MA,8C;MjBAA,iB,KAAA,E;QAEsD,OiBAA,YjBsNjB,eAAW,yBAAL,IAAK,CAAL,YAAN,CiBtNiB,EjBAmB,KiBAnB,C;O;KjBFtD,C;4FAIA,uBAAA,E;MAiMA,6B;MDnLA,kD;MCdA,iB,KAAA,E;QAMqD,ODcD,cCsLjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CDtLiB,EDqLjB,cEnMoC,KFmM/B,CAAK,IAAL,GAAiB,GAAtB,CCrLiB,C;O;KCpBpD,C;4FAOA,uBAAA,E;MA0LA,6B;MDnLA,kD;MCPA,iB,KAAA,E;QAMsD,ODOF,cCsLjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CDtLiB,ECsLjB,cA7LqC,KA6LhC,CAAK,IAAL,GAAiB,KAAtB,CDtLiB,C;O;KCbpD,C;4FAOA,uBAAA,E;MAmLA,6B;MDnLA,kD;MCAA,iB,KAAA,E;QAMoD,ODAA,cCsLjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CDtLiB,ECAkB,KDAlB,C;O;KCNpD,C;4FAOA,uBAAA,E;MAsLA,aAS6D,0B;MAT7D,+B;MiBtLA,oD;MjBAA,iB,KAAA,E;QAMsD,OiBAA,ejByLjB,eAAW,yBAAL,IAAK,CAAL,YAAN,CiBzLiB,EjBAmB,KiBAnB,C;O;KjBNtD,C;sGAQA,uBAAA,E;MAoKA,6B;MDxMA,4C;MCoCA,iB,KAAA,E;QAMiD,ODxCG,WC+MjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CD/MiB,ED8MjB,cEtKqC,KFsKhC,CAAK,IAAL,GAAiB,GAAtB,CC9MiB,C;O;KCkCpD,C;sGAOA,uBAAA,E;MA6JA,6B;MDxMA,4C;MC2CA,iB,KAAA,E;QAMkD,OD/CE,WC+MjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CD/MiB,EC+MjB,cAhKsC,KAgKjC,CAAK,IAAL,GAAiB,KAAtB,CD/MiB,C;O;KCyCpD,C;sGAOA,uBAAA,E;MAsJA,6B;MDxMA,4C;MCkDA,iB,KAAA,E;QAMgD,ODtDI,WC+MjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CD/MiB,ECsDmB,KDtDnB,C;O;KCgDpD,C;sGAOA,uBAAA,E;MAyJA,aAS6D,0B;MAT7D,+B;MiB/MA,8C;MjBsDA,iB,KAAA,E;QAMkD,OiB1DI,YjBsNjB,eAAW,yBAAL,IAAK,CAAL,YAAN,CiBtNiB,EjB0DoB,KiB1DpB,C;O;KjBoDtD,C;4FAQA,uBAAA,E;MAuIA,6B;MDnLA,kD;MDiPJ,0B;MAAA,+B;MErMI,iB,KAAA,E;QAQ6C,OFwMR,eAAW,OCtPI,cCsLjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CDtLiB,EDqLjB,cEvI4B,KFuIvB,CAAK,IAAL,GAAiB,GAAtB,CCrLiB,CDsPJ,CC1DX,ID0DW,CAAX,C;O;KEhNrC,C;4FASA,uBAAA,E;MA8HA,6B;MDnLA,kD;MCkPJ,4B;MAAA,iC;MA7LI,iB,KAAA,E;QAQ+C,OAgMR,gBAAY,QDvPC,cCsLjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CDtLiB,ECsLjB,cA/H8B,KA+HzB,CAAK,IAAL,GAAiB,KAAtB,CDtLiB,CCuPD,CDjDZ,ICiDY,CAAZ,C;O;KAxMvC,C;4FASA,uBAAA,E;MAqHA,6B;MDnLA,kD;MC8DA,iB,KAAA,E;QAQ2C,ODhES,cCsLjB,cAAK,KAAK,IAAL,GAAiB,KAAtB,CDtLiB,ECgES,KDhET,C;O;KCwDpD,C;4FASA,uBAAA,E;MAsHA,aAS6D,0B;MAT7D,+B;MiBtLA,oD;MjBgEA,iB,KAAA,E;QAQ6C,OiBlES,ejByLjB,eAAW,yBAAL,IAAK,CAAL,YAAN,CiBzLiB,EjBkEU,KiBlEV,C;O;KjB0DtD,C;4EAUA,uBAAA,E;MAAA,4B;MAAA,iC;MAAA,iBAAA,E;QAM2C,uBAAY,aAAL,IAAK,KAAZ,C;O;KAN3C,C;4EAQA,uBAAA,E;MAAA,4B;MAAA,iC;MAAA,iBAAA,E;QAM2C,uBAAY,aAAL,IAAK,KAAZ,C;O;KAN3C,C;oGAQA,uBAAA,E;MAAA,8C;MAkFA,6B;MAlFA,iB,KAAA,E;QAE+D,0BAyF5B,cAAK,KAAK,IAAL,GAAiB,KAAtB,CAzF4B,EAyF5B,cAzFqD,KAyFhD,CAAK,IAAL,GAAiB,KAAtB,CAzF4B,C;O;KAF/D,C;0GAIA,uBAAA,E;MAAA,yC;MA8EA,6B;MA9EA,iB,KAAA,E;QAQkE,aA+E/B,cAAK,KAAK,IAAL,GAAiB,KAAtB,CA/E+B,EA+E/B,cA/EmD,KA+E9C,CAAK,IAAL,GAAiB,KAAtB,CA/E+B,C;O;KARlE,C;4FAUA,uBAAA,E;MAAA,iC;M+L7NJ,4B;M/L6NI,iB,KAAA,E;QAEqD,uB+L5NiC,Q/L4N1B,I+L5NN,C/L4NW,I+L5NX,G/L4NoB,K+L5NpB,C/L4N0B,I+L5NM,C/L4NjC,C;O;KAFrD,C;0FAGA,uBAAA,E;MAAA,iC;M+L3NJ,4B;M/L2NI,iB,KAAA,E;QAEoD,uB+L1NgC,Q/L0NzB,I+L1NN,C/L0NW,I+L1NX,G/L0NmB,K+L1NnB,C/L0NyB,I+L1NM,C/L0NhC,C;O;KAFpD,C;4FAGA,uBAAA,E;MAAA,iC;M+LzNJ,4B;M/LyNI,iB,KAAA,E;QAEqD,uB+LxNiC,Q/LwN1B,I+LxNN,C/LwNW,I+LxNX,G/LwNoB,K+LxNpB,C/LwN0B,I+LxNM,C/LwNjC,C;O;KAFrD,C;4EAGA,uBAAA,E;MAAA,iC;M+LvNJ,4B;M/LuNI,iBAAA,E;QAEkC,uB+LtNsB,QAAP,M/LsNR,I+LtNe,C/LsNtB,C;O;KAFlC,C;kFAIA,uBAAA,E;MAAA,0B;MAAA,iBAAA,E;QAUmC,OAAK,YAAL,IAAK,C;O;KAVxC,C;6FAWA,CAAA,E;MASqC,gB;K;yFACrC,CAAA,E;MASiC,YAAK,IAAL,GAAiB,K;K;kFAClD,uBAAA,E;MAAA,aASqD,0B;MATrD,iBAAA,E;QASmC,OAAK,yBAAL,IAAK,CAAL,Y;O;KATnC,C;oFAWA,uBAAA,E;MF+DJ,0B;MAAA,+B;ME/DI,iBAAA,E;QASqC,OFiEE,eAAW,YEjEb,IFiEa,CAAX,C;O;KE1EvC,C;+FAUA,CAAA,E;MAEuC,W;K;kFACvC,uBAAA,E;MAAA,6B;MAAA,iBAAA,E;QASmC,qBAAK,KAAK,IAAL,GAAiB,KAAtB,C;O;KATnC,C;oFAUA,uBAAA,E;MAAA,aAS6D,0B;MAT7D,+B;MAAA,iBAAA,E;QASqC,sBAAW,yBAAL,IAAK,CAAL,YAAN,C;O;KATrC,C;6FAWA,CAAA,E;MAMqC,OApDJ,KAAK,IAAL,GAAiB,K;K;+FAqDlD,CAAA,E;MAMuC,OA3DN,KAAK,IAAL,GAAiB,K;K;yCA6DlD,CAAA,E;MAAyC,OAAQ,CA7DhB,KAAK,IAAL,GAAiB,KA6DD,Y;K;;;;;yCArVrD,CAAA,E;MAAA,c;MAGuG,qD;MAHvG,a;K;uCAAA,C,KAAA,E;MAAA,2IAGuG,oCAHvG,G;K;0EAyVA,uBAAA,E;MAAA,iC;MAAA,iB,SAAA,E;QAW4C,uBAAY,SAAZ,C;O;KAX5C,C;4EAYA,uBAAA,E;MAAA,iC;MAAA,iB,SAAA,E;QAU6C,uBAAO,SAAP,C;O;KAV7C,C;4EAWA,uBAAA,E;MAAA,4B;MAAA,iC;MAAA,iB,SAAA,E;QAW2C,uBAAY,QAAL,SAAK,CAAZ,C;O;KAX3C,C;4EAYA,uBAAA,E;MAAA,4B;MAAA,iC;MAAA,iB,SAAA,E;QAW4C,uBAAY,QAAL,SAAK,SAAZ,C;O;KAX5C,C;wBmCzXA,C,OAAA,E;MACqB,sB;K;iDAKjB,C,KAAA,E;MAM8C,OnCgWL,WmChWK,aAAQ,KAAR,CnCgWL,C;K;iDmC9VzC,C,YAAA,E;MAOI,aAAQ,KAAR,IAAiB,KAAjB,CnCsPiC,I;K;4FmClPP,CAAA,E;MAAQ,oBAAQ,M;K;8CAE9C,CAAA,E;MAC+E,qCAAS,OAAT,C;K;iCAEzD,C,KAAA,E;MAAC,oB;MACnB,eAAoB,C;K;sDACpB,CAAA,E;MAAyB,2BAAQ,OAAR,CAAc,M;K;mDACvC,CAAA,E;MAAoD,Q;MAA9B,IAAI,oBAAQ,OAAR,CAAc,MAAlB,C;QAAA,OnC2Ue,WmC3US,aAAM,mBAAN,EAAM,2BAAN,OnC2UT,C;;QmC3UwC,MAAM,2BAA6B,KAAN,OAAM,WAA7B,C;K;;oDAGvF,C,OAAA,E;MAIS,Q;MAAL,IAAI,eAAC,0EAAD,SAAJ,C;QAAkC,OAAO,K;MAEzC,OAAe,gBAAR,OAAQ,EAAS,OAAT,CnCiOkB,ImCjOlB,C;K;yDAGnB,C,QAAA,E;MACY,Q;MAA2B,gBAA3B,gE;MAA2B,c;oBjBmoD3C;A,QAFoB,U;QADhB,IAAI,wCAAsB,mBAA1B,C;UAAqC,aAAO,I;UAAP,e;;QACrB,6B;QAAhB,OAAgB,gBAAhB,C;UAAgB,2B;UiBjoD6B,2BjBioDR,OiBjoDQ,S;UAAA,W;YAAwB,yBAAR,OAAQ,EjBioDhC,OiBjoDgC,CnC6NhC,ImC7NgC,C;;UjBioD/C,IAAI,OAAJ,C;YAAyB,aAAO,K;YAAP,e;;;QAC/C,aAAO,I;;;MiBloDH,iB;K;6CAGJ,CAAA,E;MAAkC,YAAK,OAAL,CAAa,MAAb,KAAqB,C;K;;6BA9CvD,C,WAAA,E;MAAA,qD;MACgC,wBAAK,eAAW,IAAX,CAAL,C;MADhC,Y;K;;;;8CAPJ,CAAA,E;MAAA,OAKqB,sDALrB,M;K;8CAAA,CAAA,E;MAAA,c;MAKqB,wD;MALrB,a;K;4CAAA,C,KAAA,E;MAAA,2IAKqB,0CALrB,G;K;kFAwDA,uBAAA,E;MAAA,2C;iCAWwC,C,YAAA,E;QAAA,iB,KAAA,E;UAAW,oBAAK,KAAL,EnC4MV,I;S;O;MmCvNzC,iB,UAAA,E;QAWI,OAAO,qBAAY,gCAAW,IAAX,GAAiB,wBAAjB,CAAZ,C;O;KAXX,C;6FAcA,C,QAAA,E;MAGwE,e;K;uB2M3ExE,C,gBAAA,E;MAQ2D,OAAa,WAAb,ShPkRtB,CAAK,IAAL,GAAiB,GgPlRkB,EAAS,KAAT,C;K;uBAExE,C,gBAAA,E;MAQ4D,OAAa,WAAb,S9OyQvB,CAAK,IAAL,GAAiB,K8OzQmB,EAAS,KAAT,C;K;uBAGzE,C,gBAAA,E;MAQ0D,OAAc,W/O2R5B,oB+O3Rc,S/O2Rd,CAAL,IAAK,CAAL,iB+O3RiC,EAAS,KAAT,C;K;uBAExE,C,gBAAA,E;MAOgD,uBAAc,SAAd,C7NmRT,I6NnRS,EAA6B,WAAW,KAAX,CAA7B,C;K;sBAGhD,C,SAAA,E;MAMqC,Q;MAAA,0DAAmB,kBAAkB,SAAlB,C;K;sBAExD,C,gBAAA,E;MAO+C,Q;MAAA,0CAAc,KAAd,oBAAwB,kBAAkB,SAAlB,C;K;uBAGvE,C,SAAA,E;MAMuC,Q;MAAA,2DAAoB,kBAAkB,SAAlB,C;K;uBAE3D,C,gBAAA,E;MAOiD,Q;MAAA,2CAAe,KAAf,oBAAyB,kBAAkB,SAAlB,C;K;qBAE1E,C,SAAA,E;MAMmC,Q;MAAA,yDAAkB,kBAAkB,SAAlB,C;K;qBAErD,C,gBAAA,E;MAO6C,Q;MAAA,yCAAa,KAAb,oBAAuB,kBAAkB,SAAlB,C;K;sBAEpE,C,SAAA,E;MAMqC,Q;MAAA,0DAAmB,kBAAkB,SAAlB,C;K;sBAExD,C,gBAAA,E;MAO+C,Q;MAAA,0CAAc,KAAd,oBAAwB,kBAAkB,SAAlB,C;K;0BAMvE,C,SAAA,E;MAM4C,kCAAsB,EAAtB,C;K;4BAE5C,C,gBAAA,E;MAS0C,IAAvB,I;MAAA,sBAAL,SAAK,EAAa,KAAb,C;MAAL,iB;QAA4B,OAAO,I;;MAA7C,UAAU,I;MACV,I/O/EkE,Y+O+E9D,G/O/E8D,CAAiB,IAAjB,GDuQ/B,SgPxLzB,6BhPwL8B,CgPxLxB,ShPwLwB,CAAK,IAAL,GAAiB,GAAtB,CCvQ+B,EAA6B,IAA7B,C+O+E9D,IAAJ,C;QAA2B,OAAO,I;MAClC,OhPwPqC,UAAW,OgPxPzC,GhPwPyC,CC1DX,ID0DW,CAAX,C;K;2BgPrPzC,C,SAAA,E;MAM8C,mCAAuB,EAAvB,C;K;6BAE9C,C,gBAAA,E;MAS0C,IAAvB,I;MAAA,sBAAL,SAAK,EAAa,KAAb,C;MAAL,iB;QAA4B,OAAO,I;;MAA7C,UAAU,I;MACV,I/OrGkE,Y+OqG9D,G/OrG8D,CAAiB,IAAjB,GCwQ/B,S8OnKzB,8B9OmK8B,C8OnKvB,S9OmKuB,CAAK,IAAL,GAAiB,KAAtB,CDxQ+B,EAA6B,IAA7B,C+OqG9D,IAAJ,C;QAA4B,OAAO,I;MACnC,O9OmOuC,WAAY,Q8OnO5C,G9OmO4C,CDjDZ,ICiDY,CAAZ,C;K;yB8OhO3C,C,SAAA,E;MAM0C,iCAAqB,EAArB,C;K;2BAE1C,C,gBAAA,E;MASI,WAAW,KAAX,C;MAEA,aAAa,SAAb,CAAkB,M;MAClB,IAAI,WAAU,CAAd,C;QAAiB,OAAO,I;MAExB,YAAkB,4BAAlB,CAAuB,S;MACvB,S;MAEA,gBAAgB,qBAAK,CAAL,C;MAChB,IAAI,YAAY,EAAhB,C;QACI,IAAI,WAAU,CAAV,IAAe,cAAa,EAAhC,C;UAAqC,OAAO,I;QAC5C,QAAQ,C;;QAER,QAAQ,C;;MAGZ,uBAAuB,mB;MAEvB,qBAAqB,gB;MACrB,a/OiNmC,S+OjNtB,K/OiNsB,C;M+OhNnC,aAAa,W;MACb,aAAU,KAAV,MAAsB,MAAtB,M;QACI,YAAY,QAAQ,qBAAK,CAAL,CAAR,EAAiB,KAAjB,C;QAEZ,IAAI,QAAQ,CAAZ,C;UAAe,OAAO,I;QACtB,I/OnJ8D,Y+OmJ1D,M/OnJ0D,CAAiB,IAAjB,E+OmJjD,c/OnJiD,CAA6B,IAA7B,C+OmJ1D,IAAJ,C;UACI,IAAI,+CAAkB,gBAAlB,QAAJ,C;YACI,iB/O5FwC,W+O4FvB,K/O5FuB,E+O4Ff,M/O5Fe,C;Y+O8FxC,I/OvJsD,Y+OuJlD,M/OvJkD,CAAiB,IAAjB,E+OuJzC,c/OvJyC,CAA6B,IAA7B,C+OuJlD,IAAJ,C;cACI,OAAO,I;;;YAGX,OAAO,I;;;QAIf,S/OnHkD,SAAe,Y+OmHjE,M/OnHiE,CAAL,IAAK,E+OmHvD,M/OnHuD,CAAY,IAAZ,CAAf,C;Q+OqHlD,mBAAmB,M;QACnB,S/OhJiD,S+OgJjD,M/OhJgE,CAAL,IAAK,IA4UjC,S+O5LrB,K/O4LqB,CA5UiC,EAAW,IAAX,IAAf,C;Q+OiJjD,I/OnK8D,Y+OmK1D,M/OnK0D,CAAiB,IAAjB,E+OmKjD,Y/OnKiD,CAA6B,IAA7B,C+OmK1D,IAAJ,C;UAA2B,OAAO,I;;MAGtC,OAAO,M;K;0BAGX,C,SAAA,E;MAM4C,kCAAsB,EAAtB,C;K;4BAE5C,C,gBAAA,E;MASI,WAAW,KAAX,C;MAEA,aAAa,SAAb,CAAkB,M;MAClB,IAAI,WAAU,CAAd,C;QAAiB,OAAO,I;MAExB,YAAmB,6BAAnB,CAAyB,S;MACzB,S;MAEA,gBAAgB,qBAAK,CAAL,C;MAChB,IAAI,YAAY,EAAhB,C;QACI,IAAI,WAAU,CAAV,IAAe,cAAa,EAAhC,C;UAAqC,OAAO,I;QAC5C,QAAQ,C;;QAER,QAAQ,C;;MAIZ,uBAAuB,gD;MAEvB,qBAAqB,gB;MACrB,a7NoJqC,UAAW,oB6NpJnC,K7NoJmC,CAAX,C;M6NnJrC,aAAa,2B;MACb,aAAU,KAAV,MAAsB,MAAtB,M;QACI,YAAY,QAAQ,qBAAK,CAAL,CAAR,EAAiB,KAAjB,C;QAEZ,IAAI,QAAQ,CAAZ,C;UAAe,OAAO,I;QACtB,I7N5M+D,a6N4M3D,M7N5M2D,CAAkB,IAAlB,E6N4MlD,c7N5MkD,CAA8B,IAA9B,C6N4M3D,IAAJ,C;UACI,IAAI,+CAAkB,gBAAlB,QAAJ,C;YACI,iB7N1J0C,Y6N0JzB,K7N1JyB,E6N0JjB,M7N1JiB,C;Y6N4J1C,I7NhNuD,a6NgNnD,M7NhNmD,CAAkB,IAAlB,E6NgN1C,c7NhN0C,CAA8B,IAA9B,C6NgNnD,IAAJ,C;cACI,OAAO,I;;;YAGX,OAAO,I;;;QAIf,S7NjLoD,U6NiLpD,M7NjLoE,CAAL,IAAK,U6NiL1D,M7NjL0D,CAAY,IAAZ,CAAhB,C;Q6NmLpD,mBAAmB,M;QACnB,S7N9MmD,U6N8MnD,M7N9MmE,CAAL,IAAK,MlBgRlC,UAAW,qBAyDb,S+O3HrB,K/O2HqB,CAzDa,EAAL,IAAK,CAAL,iBAAN,CkBhRkC,EAAW,IAAX,CAAhB,C;Q6N+MnD,I7N5N+D,a6N4N3D,M7N5N2D,CAAkB,IAAlB,E6N4NlD,Y7N5NkD,CAA8B,IAA9B,C6N4N3D,IAAJ,C;UAA2B,OAAO,I;;MAGtC,OAAO,M;K;wBtO9RX,C,MAAA,E;MACkD,OAAuB,0BAAtB,KAAO,WAAe,EAAU,KAAO,WAAjB,C;K;yBACzE,C,MAAA,E;MACqD,OAAC,gCAAuB,iBAAU,gCAAV,C;K;uBAE7E,C,MAAA,E;MACoD,OT2ZZ,SAvGI,oBSpTS,EToTT,CAAL,IAAK,CAAL,iBSpTc,KToTT,oBSpTuB,EToTvB,CAAL,IAAK,CAAL,iBSpTc,CT2ZH,QAAV,C;K;0BS1ZxC,C,MAAA,E;MACuD,OTyZf,SAvGI,oBSlTY,ETkTZ,CAAL,IAAK,CAAL,iBSlTiB,QTkTZ,oBSlT0B,ETkT1B,CAAL,IAAK,CAAL,iBSlTiB,CTyZN,QAAV,C;K;wBSpZxC,C,MAAA,E;MAEI,eAAe,EAAf,CS4SmC,I;MT3SnC,cAAc,EAAd,CS2SmC,I;MT1SnC,IAAI,qBAAU,CAAd,C;QACI,OS6C+D,aT7CpD,ES6CoD,CAAkB,IAAlB,ET7C/C,ES6C+C,CAA8B,IAA9B,CT7CpD,IAAJ,GAAa,aAAb,GAA2B,a;;MAItC,IAAI,uBAAY,CAAhB,C;QACI,OAAO,UAAM,aAAW,OAAX,CAAN,C;;MAIX,eAAiB,4BAAc,CAAd,CAAD,KAAoB,OAApB,CAAD,WAAkC,CAAlC,C;MACf,UAAU,kBAAW,kBAAW,OAAX,CAAX,C;MACV,OAAO,UAAM,iCSkCsD,cTlCvC,UAAM,GAAN,CSkCuC,EAAkB,IAAlB,GTlCzB,UAAM,OAAN,CSkCyB,EAA8B,IAA9B,CTlCvC,KAAJ,GAAkC,CAAlC,GAAyC,CAApD,EAAN,C;K;2BAIX,C,MAAA,E;MAKe,Q;MAHX,eAAe,EAAf,CSwRmC,I;MTvRnC,cAAc,EAAd,CSuRmC,I;MTtRnC,IAAI,qBAAU,CAAd,C;QACW,ISyBwD,aTzBpD,ESyBoD,CAAkB,IAAlB,ETzB/C,ESyB+C,CAA8B,IAA9B,CTzBpD,IAAJ,C;UACH,S;;UAEA,OSgDgD,UThDhD,ESgDgE,CAAL,IAAK,UThD3D,ESgD2D,CAAY,IAAZ,CAAhB,C;;QTnDpD,W;;MAQJ,IAAI,uBAAY,CAAhB,C;QACI,OAAO,UAAM,gBAAW,OAAX,CAAN,C;;MAIX,eAAiB,4BAAc,CAAd,CAAD,KAAoB,OAApB,CAAD,WAAkC,CAAlC,C;MACf,UAAU,kBAAW,kBAAW,OAAX,CAAX,C;MACV,OAAO,UAAM,aSUsD,cTV5C,UAAM,GAAN,CSU4C,EAAkB,IAAlB,GTV9B,UAAM,OAAN,CSU8B,EAA8B,IAA9B,CTV5C,KAAJ,GAAkC,OAAlC,KAAN,CAAN,C;K;yBAGX,C,CAAA,E;MAEI,IAAE,QAAF,CAAE,CAAF,C;QADyC,OAC5B,W;;QACb,STkTuC,aSlTlC,4BTkTkC,CSlT7B,STkT6B,CAAa,IAAb,CSlTvC,C;UAFyC,OAEP,4BAFO,CAEF,S;;UACvC,STiTuC,aSjTlC,4BTiTkC,CSjT7B,STiT6B,CAAa,IAAb,CSjTvC,C;YAHyC,OAGP,4BAHO,CAGF,S;eACvC,SAAK,UAAL,C;YAJyC,OT4VN,SSxVX,YAAF,CAAE,CTwVW,C;;YS5VM,OTgBY,SAAe,CA4UjC,SSvVP,YAAnB,IAAI,UAAe,CTuVO,CA5UiC,EAAL,IAAK,IA4UjC,SSvVY,UTuVZ,CA5UiC,EAAW,IAAX,IAAf,C;;;;K;0BSRzD,C,CAAA,E;MAEI,IAAE,QAAF,CAAE,CAAF,C;QAD2C,OAC9B,2B;;QACb,SS4SuC,cT5SlC,6BS4SkC,CT5S5B,SS4S4B,CAAc,IAAd,CT5SvC,C;UAF2C,OAER,6BAFQ,CAEF,S;;UACzC,SS2SuC,cT3SlC,6BS2SkC,CT3S5B,SS2S4B,CAAc,IAAd,CT3SvC,C;YAH2C,OAGR,6BAHQ,CAGF,S;eACzC,4C;YAJ2C,OSkWL,UT9Vd,uBAAF,CAAE,CS8Vc,C;;YTlWK,OSUY,UAAgB,CAwVjC,UT3VF,uBAA3B,IAAI,oBAAuB,CS2VE,CAxViC,EAAL,IAAK,MTHd,gCSGc,EAAW,IAAX,CAAhB,C;;;;K;yBTC3D,C,CAAA,E;MAC4C,QAAC,CAAqB,GAAf,UAAP,IAAmC,CAAC,MAAO,EAAW,IAAJ,EAAf,IAAgC,C;K;0BAE/G,C,CAAA,E;MAC8C,OAAC,qBAAO,EAAP,CAAW,WAAZ,GAAyB,IAAzB,GAAiC,YAAjC,W;K;0BAG9C,C,CAAA,E;MAA8C,uBAAc,CAAd,EAAiB,EAAjB,C;K;4BAE9C,C,OAAA,E;MACI,IAAI,gBAAK,CAAT,C;QAAY,OAAS,WAAF,CAAE,EAAS,IAAT,C;MAErB,eAAiB,qBAAO,CAAP,CAAD,yBAAa,IAAb,EAAD,WAAwB,CAAxB,C;MACf,UAAU,WAAI,sCAAW,IAAX,EAAJ,C;MACV,IAAI,kBAAO,IAAX,C;QACI,uCAAO,IAAP,E;QACA,4CAAY,CAAZ,E;;MAEJ,OAAgB,WAAT,QAAS,EAAS,IAAT,CAAT,GAA8B,WAAJ,GAAI,EAAS,IAAT,C;K;sCuO1FzC,CAAA,E;K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBhJsEA,C,KAAA,E;;K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SiJjE8B,iB;QAGD,iB;gC5JmBqB,I;IW8C9C,aAAyB,OAAO,OAAQ,KAAI,WAAY,IAAG,OAAH,CAAW,QAA7C,IAAyD,CAAC,CAAC,OAAD,CAAS,QAAT,CAAkB,I;aAC9F,MAAJ,GAAY,iBAAgB,OAAhB,CAAa,MAAb,CAAZ,GAAoD,gC;uDG1EJ,mC,EAAuB,wB;yB+I0BnC,iJ;8BAMK,2M;8BAKA,qQ;ejIsXS,MAAW,KG1ZlC,GH0ZkC,EG1Z1B,GH0Z0B,C;eAAX,MAAW,KGzZlC,GHyZkC,EGzZ1B,GHyZ0B,C;sBWrVnC,gBAA8B,CAA9B,O;oClG2Pc,eAAmB,oCAAnB,C;yB6G5LL,C;gCAKY,eAAiB,OAAL,GAAK,CAAjB,EAAgC,OAAL,GAAK,CAAhC,EAA+C,OAAL,GAAK,CAA/C,E;uBAwDd,K;qB6C9GK,C;yBACI,C;sBACH,C;kBACJ,C;iBACD,C;mBACE,C;sBgBsdV,eAC1B,EAD0B,EACrB,EADqB,EAChB,EADgB,EACX,EADW,EACN,EADM,EACD,EADC,EACI,EADJ,EACS,EADT,EACc,EADd,EACmB,EADnB,EACwB,EADxB,EAC6B,EAD7B,EACkC,EADlC,EACuC,EADvC,EAC4C,EAD5C,EACiD,EADjD,EAE1B,EAF0B,EAErB,EAFqB,EAEhB,EAFgB,EAEX,EAFW,EAEN,EAFM,EAED,EAFC,EAEI,EAFJ,EAES,EAFT,EAEc,EAFd,EAEmB,EAFnB,EAEwB,EAFxB,EAE6B,EAF7B,EAEkC,EAFlC,EAEuC,GAFvC,EAE4C,GAF5C,EAEiD,GAFjD,EAG1B,GAH0B,EAGrB,GAHqB,EAGhB,GAHgB,EAGX,GAHW,EAGN,GAHM,EAGD,GAHC,EAGI,GAHJ,EAGS,GAHT,EAGc,GAHd,EAGmB,GAHnB,EAGwB,GAHxB,EAG6B,GAH7B,EAGkC,GAHlC,EAGuC,GAHvC,EAG4C,GAH5C,EAGiD,GAHjD,EAI1B,GAJ0B,EAIrB,GAJqB,EAIhB,GAJgB,EAIX,GAJW,EAIN,EAJM,EAID,EAJC,EAII,EAJJ,EAIS,EAJT,EAIc,EAJd,EAImB,EAJnB,EAIwB,EAJxB,EAI6B,EAJ7B,EAIkC,EAJlC,EAIuC,EAJvC,EAI4C,EAJ5C,EAIiD,EAJjD,E;IASc,gBAAd,eAAS,GAAT,C;IACrB,kBAAK,EAAL,C;IACL,UAAK,EAAL,IAAiC,E;IACjB,kBAAhB,e;IvMigZa,gB;IADb,YAAY,C;IACZ,wBAAa,WAAb,gB;MAAa,WAAA,WAAb,M;MuMhgZI,UvMggZ+B,IuMhgZ/B,KvMggZsB,cuMhgZtB,EvMggZsB,sBuMhgZtB,S;;sBpLrfG,S;yBoL2fsB,eAC7B,EAD6B,EACxB,EADwB,EACnB,EADmB,EACd,EADc,EACT,EADS,EACJ,EADI,EACC,EADD,EACM,EADN,EACW,EADX,EACgB,EADhB,EACqB,EADrB,EAC0B,EAD1B,EAC+B,EAD/B,EACoC,EADpC,EACyC,EADzC,EAC8C,EAD9C,EAE7B,EAF6B,EAExB,EAFwB,EAEnB,EAFmB,EAEd,EAFc,EAET,EAFS,EAEJ,EAFI,EAEC,EAFD,EAEM,EAFN,EAEW,EAFX,EAEgB,EAFhB,EAEqB,EAFrB,EAE0B,EAF1B,EAE+B,EAF/B,EAEoC,GAFpC,EAEyC,GAFzC,EAE8C,GAF9C,EAG7B,GAH6B,EAGxB,GAHwB,EAGnB,GAHmB,EAGd,GAHc,EAGT,GAHS,EAGJ,GAHI,EAGC,GAHD,EAGM,GAHN,EAGW,GAHX,EAGgB,GAHhB,EAGqB,GAHrB,EAG0B,GAH1B,EAG+B,GAH/B,EAGoC,GAHpC,EAGyC,GAHzC,EAG8C,GAH9C,EAI7B,GAJ6B,EAIxB,GAJwB,EAInB,GAJmB,EAId,GAJc,EAIT,EAJS,EAIJ,EAJI,EAIC,EAJD,EAIM,EAJN,EAIW,EAJX,EAIgB,EAJhB,EAIqB,EAJrB,EAI0B,EAJ1B,EAI+B,EAJ/B,EAIoC,EAJpC,EAIyC,EAJzC,EAI8C,EAJ9C,E;IASc,kBAAd,eAAS,GAAT,C;IACxB,oBAAK,EAAL,C;IACL,YAAK,EAAL,IAAiC,E;IACd,kBAAnB,kB;IvM8+Ya,kB;IADb,cAAY,C;IACZ,4BAAa,WAAb,kB;MAAa,aAAA,WAAb,Q;MuM7+YI,YvM6+Y+B,MuM7+Y/B,KvM6+YsB,gBuM7+YtB,EvM6+YsB,wBuM7+YtB,S;;yBpLxgBG,W;4BV1E+B,kB;4BACA,kB;IAIe,kBAArB,gCAAS,GAAT,GAAc,4BAAd,C;IyBipCnB,kB;IADb,cAAY,C;IACC,oBzBhpCb,qByBgpCa,C;IAAb,OAAa,gBAAb,C;MAAa,qC;MAAM,eAAO,gBAAP,EAAO,wBAAP,S;MzBhpCmC,YAAK,UyBgpCxB,mBzBhpCwB,CsBkCjB,ItBlCY,IAAkB,O;;IyBgpC3D,kB;IADb,cAAY,C;IACC,oBzB/oCb,qByB+oCa,C;IAAb,OAAa,gBAAb,C;MAAa,qC;MAAM,eAAO,gBAAP,EAAO,wBAAP,S;MzB/oCmC,YAAK,UyB+oCxB,mBzB/oCwB,CsBiCjB,ItBjCY,IAAkB,O;;4BUmEjE,W;sBRm2C0B,O;;;;uB6C11CzB,W6KmCkC,yB7KnClC,C;;;;CrEjFX,E;"}