{"version":3,"file":"kotlinx-html-js.js","sources":["src/kotlin/collections/Maps.kt","src/kotlin/text/regex/RegexExtensions.kt","common/src/generated/_Collections.kt","common/src/generated/_Arrays.kt","runtime/arrayUtils.kt","common/src/generated/_Strings.kt","../../../../../src/commonMain/kotlin/api.kt","../../../../../src/commonMain/kotlin/visit.kt","../../../../../src/commonMain/kotlin/attributes.kt","src/kotlin/text/Strings.kt","../../../../../src/commonMain/kotlin/compatibility.kt","../../../../../src/commonMain/kotlin/generated/gen-consumer-tags.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-d.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-f.kt","../../../../../src/commonMain/kotlin/generated/gen-tag-unions.kt","../../../../../src/commonMain/kotlin/delayed-consumer.kt","../../../../../src/commonMain/kotlin/delegating-map.kt","common/src/generated/_Maps.kt","../../../../../src/commonMain/kotlin/exception-consumer.kt","../../../../../src/commonMain/kotlin/filter-consumer.kt","../../../../../src/commonMain/kotlin/finalize-consumer.kt","../../../../../src/commonMain/kotlin/generated/gen-attr-traits.kt","../../../../../src/commonMain/kotlin/generated/gen-entities.kt","../../../../../src/commonMain/kotlin/generated/gen-enums.kt","../../../../../src/commonMain/kotlin/generated/gen-tag-groups.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-a.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-b.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-c.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-e.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-h.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-i.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-k.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-l.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-m.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-n.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-o.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-p.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-q.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-r.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-s.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-t.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-u.kt","../../../../../src/commonMain/kotlin/generated/gen-tags-v.kt","../../../../../src/commonMain/kotlin/htmltag.kt","../../../../../src/commonMain/kotlin/measure-consumer.kt","../../../../../src/commonMain/kotlin/stream.kt","src/kotlin/util/Standard.kt","../../../../../src/commonMain/kotlin/trace-consumer.kt","../../../../../src/commonMain/kotlin/util.kt","../../../../../src/jsMain/kotlin/compatibility-js.kt","../../../../../src/jsMain/kotlin/generated/gen-consumer-tags-js.kt","../../../../../src/jsMain/kotlin/dom-js.kt","src/kotlin/collections/Collections.kt","js/src/kotlin/text/string.kt","../../../../../src/jsMain/kotlin/generated/gen-event-attrs-js.kt","../../../../../src/jsMain/kotlin/injector.kt","../../../../../src/jsMain/kotlin/trace-js.kt","../../../../../src/jsMain/kotlin/utilsImpl-js.kt","../../../../../src/commonMain/kotlin/generated/gen-attributes.kt"],"sourcesContent":["/*\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(\"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 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\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\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, or the result of the [defaultValue] function if there was no entry for the given key.\n *\n * @sample samples.collections.Maps.Usage.getOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.getOrElse(key: K, defaultValue: () -> V): V = get(key) ?: defaultValue()\n\n\ninternal inline fun Map.getOrElseNullable(key: K, defaultValue: () -> V): V {\n val value = get(key)\n if (value == null && !containsKey(key)) {\n return defaultValue()\n } else {\n @Suppress(\"UNCHECKED_CAST\")\n return value as V\n }\n}\n\n/**\n * Returns the value for the given [key] or throws an exception if there is no such key in the map.\n *\n * If the map was created by [withDefault], resorts to its `defaultValue` provider function\n * instead of throwing an exception.\n *\n * @throws NoSuchElementException when the map doesn't contain a value for the specified key and\n * no implicit default value was provided for that map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.getValue(key: K): V = getOrImplicitDefault(key)\n\n/**\n * Returns the value for the given key. If the key is not found in the map, calls the [defaultValue] function,\n * puts its result into the map under the given key and returns it.\n *\n * Note that the operation is not guaranteed to be atomic if the map is being modified concurrently.\n *\n * @sample samples.collections.Maps.Usage.getOrPut\n */\npublic inline fun MutableMap.getOrPut(key: K, defaultValue: () -> V): V {\n val value = get(key)\n return if (value == null) {\n val answer = defaultValue()\n put(key, answer)\n answer\n } else {\n value\n }\n}\n\n/**\n * Returns an [Iterator] over the entries in the [Map].\n *\n * @sample samples.collections.Maps.Usage.forOverEntries\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.iterator(): Iterator> = entries.iterator()\n\n/**\n * Returns a [MutableIterator] over the mutable entries in the [MutableMap].\n *\n */\n@kotlin.jvm.JvmName(\"mutableIterator\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.iterator(): MutableIterator> = entries.iterator()\n\n/**\n * Populates the given [destination] map with entries having the keys of this map and the values obtained\n * by applying the [transform] function to each entry in this [Map].\n */\npublic inline fun > Map.mapValuesTo(destination: M, transform: (Map.Entry) -> R): M {\n return entries.associateByTo(destination, { it.key }, transform)\n}\n\n/**\n * Populates the given [destination] map with entries having the keys obtained\n * by applying the [transform] function to each entry in this [Map] and the values of this map.\n *\n * In case if any two entries are mapped to the equal keys, the value of the latter one will overwrite\n * the value associated with the former one.\n */\npublic inline fun > Map.mapKeysTo(destination: M, transform: (Map.Entry) -> R): M {\n return entries.associateByTo(destination, transform, { it.value })\n}\n\n/**\n * Puts all the given [pairs] into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Array>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Puts all the elements of the given collection into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Iterable>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Puts all the elements of the given sequence into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Sequence>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Returns a new map with entries having the keys of this map and the values obtained by applying the [transform]\n * function to each entry in this [Map].\n *\n * The returned map preserves the entry iteration order of the original map.\n *\n * @sample samples.collections.Maps.Transformations.mapValues\n */\npublic inline fun Map.mapValues(transform: (Map.Entry) -> R): Map {\n return mapValuesTo(LinkedHashMap(mapCapacity(size)), transform) // .optimizeReadOnlyMap()\n}\n\n/**\n * Returns a new Map with entries having the keys obtained by applying the [transform] function to each entry in this\n * [Map] and the values of this map.\n *\n * In case if any two entries are mapped to the equal keys, the value of the latter one will overwrite\n * the value associated with the former one.\n *\n * The returned map preserves the entry iteration order of the original map.\n *\n * @sample samples.collections.Maps.Transformations.mapKeys\n */\npublic inline fun Map.mapKeys(transform: (Map.Entry) -> R): Map {\n return mapKeysTo(LinkedHashMap(mapCapacity(size)), transform) // .optimizeReadOnlyMap()\n}\n\n/**\n * Returns a map containing all key-value pairs with keys matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterKeys\n */\npublic inline fun Map.filterKeys(predicate: (K) -> Boolean): Map {\n val result = LinkedHashMap()\n for (entry in this) {\n if (predicate(entry.key)) {\n result.put(entry.key, entry.value)\n }\n }\n return result\n}\n\n/**\n * Returns a map containing all key-value pairs with values matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterValues\n */\npublic inline fun Map.filterValues(predicate: (V) -> Boolean): Map {\n val result = LinkedHashMap()\n for (entry in this) {\n if (predicate(entry.value)) {\n result.put(entry.key, entry.value)\n }\n }\n return result\n}\n\n\n/**\n * Appends all entries matching the given [predicate] into the mutable map given as [destination] parameter.\n *\n * @return the destination map.\n * @sample samples.collections.Maps.Filtering.filterTo\n */\npublic inline fun > Map.filterTo(destination: M, predicate: (Map.Entry) -> Boolean): M {\n for (element in this) {\n if (predicate(element)) {\n destination.put(element.key, element.value)\n }\n }\n return destination\n}\n\n/**\n * Returns a new map containing all key-value pairs matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filter\n */\npublic inline fun Map.filter(predicate: (Map.Entry) -> Boolean): Map {\n return filterTo(LinkedHashMap(), predicate)\n}\n\n/**\n * Appends all entries not matching the given [predicate] into the given [destination].\n *\n * @return the destination map.\n * @sample samples.collections.Maps.Filtering.filterNotTo\n */\npublic inline fun > Map.filterNotTo(destination: M, predicate: (Map.Entry) -> Boolean): M {\n for (element in this) {\n if (!predicate(element)) {\n destination.put(element.key, element.value)\n }\n }\n return destination\n}\n\n/**\n * Returns a new map containing all key-value pairs not matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterNot\n */\npublic inline fun Map.filterNot(predicate: (Map.Entry) -> Boolean): Map {\n return filterNotTo(LinkedHashMap(), predicate)\n}\n\n/**\n * Returns a new map containing all key-value pairs from the given collection of pairs.\n *\n * The returned map preserves the entry iteration order of the original collection.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Iterable>.toMap(): Map {\n if (this is Collection) {\n return when (size) {\n 0 -> emptyMap()\n 1 -> mapOf(if (this is List) this[0] else iterator().next())\n else -> toMap(LinkedHashMap(mapCapacity(size)))\n }\n }\n return toMap(LinkedHashMap()).optimizeReadOnlyMap()\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given collection of pairs.\n */\npublic fun > Iterable>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new map containing all key-value pairs from the given array of pairs.\n *\n * The returned map preserves the entry iteration order of the original array.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Array>.toMap(): Map = when (size) {\n 0 -> emptyMap()\n 1 -> mapOf(this[0])\n else -> toMap(LinkedHashMap(mapCapacity(size)))\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given array of pairs.\n */\npublic fun > Array>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new map containing all key-value pairs from the given sequence of pairs.\n *\n * The returned map preserves the entry iteration order of the original sequence.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Sequence>.toMap(): Map = toMap(LinkedHashMap()).optimizeReadOnlyMap()\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given sequence of pairs.\n */\npublic fun > Sequence>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new read-only map containing all key-value pairs from the original map.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.toMap(): Map = when (size) {\n 0 -> emptyMap()\n 1 -> toSingletonMap()\n else -> toMutableMap()\n}\n\n/**\n * Returns a new mutable map containing all key-value pairs from the original map.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.toMutableMap(): MutableMap = LinkedHashMap(this)\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given map.\n */\n@SinceKotlin(\"1.1\")\npublic fun > Map.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Creates a new read-only map by replacing or adding an entry to this map from a given key-value [pair].\n *\n * The returned map preserves the entry iteration order of the original map.\n * The [pair] is iterated in the end if it has a unique key.\n */\npublic operator fun Map.plus(pair: Pair): Map =\n if (this.isEmpty()) mapOf(pair) else LinkedHashMap(this).apply { put(pair.first, pair.second) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given collection of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] collection.\n */\npublic operator fun Map.plus(pairs: Iterable>): Map =\n if (this.isEmpty()) pairs.toMap() else LinkedHashMap(this).apply { putAll(pairs) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given array of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] array.\n */\npublic operator fun Map.plus(pairs: Array>): Map =\n if (this.isEmpty()) pairs.toMap() else LinkedHashMap(this).apply { putAll(pairs) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given sequence of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] sequence.\n */\npublic operator fun Map.plus(pairs: Sequence>): Map =\n LinkedHashMap(this).apply { putAll(pairs) }.optimizeReadOnlyMap()\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from another [map].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those entries of another [map] that are missing in this map are iterated in the end in the order of that [map].\n */\npublic operator fun Map.plus(map: Map): Map =\n LinkedHashMap(this).apply { putAll(map) }\n\n\n/**\n * Appends or replaces the given [pair] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pair: Pair) {\n put(pair.first, pair.second)\n}\n\n/**\n * Appends or replaces all pairs from the given collection of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Iterable>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all pairs from the given array of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Array>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all pairs from the given sequence of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Sequence>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all entries from the given [map] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(map: Map) {\n putAll(map)\n}\n\n/**\n * Returns a map containing all entries of the original map except the entry with the given [key].\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(key: K): Map =\n this.toMutableMap().apply { minusAssign(key) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] collection.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Iterable): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] array.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Array): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] sequence.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Sequence): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Removes the entry with the given [key] from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(key: K) {\n remove(key)\n}\n\n/**\n * Removes all entries the keys of which are contained in the given [keys] collection from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Iterable) {\n this.keys.removeAll(keys)\n}\n\n/**\n * Removes all entries the keys of which are contained in the given [keys] array from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Array) {\n this.keys.removeAll(keys)\n}\n\n/**\n * Removes all entries from the keys of which are contained in the given [keys] sequence from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Sequence) {\n this.keys.removeAll(keys)\n}\n\n\n// do not expose for now @PublishedApi\ninternal fun Map.optimizeReadOnlyMap() = when (size) {\n 0 -> emptyMap()\n 1 -> toSingletonMapOrSelf()\n else -> this\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\n/**\n * Converts the string into a regular expression [Regex] with the default options.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(): Regex = Regex(this)\n\n/**\n * Converts the string into a regular expression [Regex] with the specified single [option].\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(option: RegexOption): Regex = Regex(this, option)\n\n/**\n * Converts the string into a regular expression [Regex] with the specified set of [options].\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(options: Set): Regex = Regex(this, options)\n","/*\n * Copyright 2010-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(\"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 * @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 * \n * Before Kotlin 1.6, the [elements] array may have been converted to a [HashSet] to speed up the operation, thus the elements were required to have\n * a correct and stable implementation of `hashCode()` that didn't change between successive invocations.\n * On JVM, you can enable this behavior back with the system property `kotlin.collections.convert_arg_to_set_in_removeAll` set to `true`.\n */\npublic operator fun Iterable.minus(elements: Array): List {\n if (elements.isEmpty()) return this.toList()\n val other = elements.convertToSetForSetOperation()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] collection.\n * \n * Before Kotlin 1.6, the [elements] collection may have been converted to a [HashSet] to speed up the operation, thus the elements were required to have\n * a correct and stable implementation of `hashCode()` that didn't change between successive invocations.\n * On JVM, you can enable this behavior back with the system property `kotlin.collections.convert_arg_to_set_in_removeAll` set to `true`.\n */\npublic operator fun Iterable.minus(elements: Iterable): List {\n val other = elements.convertToSetForSetOperationWith(this)\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] sequence.\n * \n * Before Kotlin 1.6, the [elements] sequence may have been converted to a [HashSet] to speed up the operation, thus the elements were required to have\n * a correct and stable implementation of `hashCode()` that didn't change between successive invocations.\n * On JVM, you can enable this behavior back with the system property `kotlin.collections.convert_arg_to_set_in_removeAll` set to `true`.\n */\npublic operator fun Iterable.minus(elements: Sequence): List {\n val other = elements.convertToSetForSetOperation()\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-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(\"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect infix fun CharArray.contentEquals(other: CharArray): 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 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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun CharArray.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 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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"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@Deprecated(\"Use Kotlin compiler 1.4 to avoid deprecation warning.\")\n@SinceKotlin(\"1.1\")\n@DeprecatedSinceKotlin(hiddenSince = \"1.4\")\npublic expect fun CharArray.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 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 * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Array.all(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun ByteArray.all(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun ShortArray.all(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun IntArray.all(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun LongArray.all(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun FloatArray.all(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun BooleanArray.all(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun CharArray.all(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Array.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun ByteArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun ShortArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun IntArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun LongArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun FloatArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun DoubleArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun BooleanArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun CharArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Array.any(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun ByteArray.any(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun ShortArray.any(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun IntArray.any(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun LongArray.any(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun FloatArray.any(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun DoubleArray.any(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun BooleanArray.any(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun CharArray.any(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun Array.count(predicate: (T) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun ByteArray.count(predicate: (Byte) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun ShortArray.count(predicate: (Short) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun IntArray.count(predicate: (Int) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun LongArray.count(predicate: (Long) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun FloatArray.count(predicate: (Float) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun DoubleArray.count(predicate: (Double) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun BooleanArray.count(predicate: (Boolean) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun CharArray.count(predicate: (Char) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\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-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-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(\"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 * @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","package kotlinx.html\n\nimport kotlinx.html.org.w3c.dom.events.Event\n\ninterface TagConsumer {\n fun onTagStart(tag: Tag)\n fun onTagAttributeChange(tag: Tag, attribute: String, value: String?)\n fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit)\n fun onTagEnd(tag: Tag)\n fun onTagContent(content: CharSequence)\n fun onTagContentEntity(entity: Entities)\n fun onTagContentUnsafe(block: Unsafe.() -> Unit)\n fun onTagComment(content: CharSequence)\n fun onTagError(tag: Tag, exception: Throwable): Unit = throw exception\n fun finalize(): R\n}\n\n@HtmlTagMarker\ninterface Tag {\n val tagName: String\n val consumer: TagConsumer<*>\n val namespace: String?\n\n val attributes: MutableMap\n val attributesEntries: Collection>\n\n val inlineTag: Boolean\n val emptyTag: Boolean\n\n operator fun Entities.unaryPlus(): Unit {\n entity(this)\n }\n\n operator fun String.unaryPlus(): Unit {\n text(this)\n }\n\n fun text(s: String) {\n consumer.onTagContent(s)\n }\n\n fun text(n: Number) {\n text(n.toString())\n }\n\n fun entity(e: Entities) {\n consumer.onTagContentEntity(e)\n }\n\n fun comment(s: String) {\n consumer.onTagComment(s)\n }\n}\n\n@HtmlTagMarker\ninterface Unsafe {\n operator fun String.unaryPlus()\n operator fun Entities.unaryPlus() = +text\n\n fun raw(s: String) {\n +s\n }\n\n fun raw(entity: Entities) {\n +entity\n }\n\n fun raw(n: Number) {\n +n.toString()\n }\n}\n\ninterface AttributeEnum {\n val realValue: String\n}\n\ninline fun T.visit(crossinline block: T.() -> Unit) = visitTag { block() }\n\ninline fun T.visitAndFinalize(consumer: TagConsumer, crossinline block: T.() -> Unit): R\n = visitTagAndFinalize(consumer) { block() }\n\nfun attributesMapOf() = emptyMap\nfun attributesMapOf(key: String, value: String?): Map = when (value) {\n null -> emptyMap\n else -> singletonMapOf(key, value)\n}\n\nfun attributesMapOf(vararg pairs: String?): Map {\n var result: MutableMap? = null\n\n for (i in 0..pairs.size - 1 step 2) {\n val k = pairs[i]\n val v = pairs[i + 1]\n if (k != null && v != null) {\n if (result == null) {\n result = linkedMapOf()\n }\n result.put(k, v)\n }\n }\n\n return result ?: emptyMap\n}\n\nfun singletonMapOf(key: String, value: String): Map = SingletonStringMap(key, value)\n\nfun HTMLTag.unsafe(block: Unsafe.() -> Unit): Unit = consumer.onTagContentUnsafe(block)\n\nval emptyMap: Map = emptyMap()\n\nclass DefaultUnsafe : Unsafe {\n private val sb = StringBuilder()\n\n override fun String.unaryPlus() {\n sb.append(this)\n }\n\n override fun toString(): String = sb.toString()\n}\n\n@DslMarker\nannotation class HtmlTagMarker\n\ntypealias HtmlContent = FlowOrPhrasingContent\n\nprivate data class SingletonStringMap(override val key: String, override val value: String) : Map,\n Map.Entry {\n override val entries: Set>\n get() = setOf(this)\n\n override val keys: Set\n get() = setOf(key)\n\n override val size: Int\n get() = 1\n\n override val values: Collection\n get() = listOf(value)\n\n override fun containsKey(key: String) = key == this.key\n override fun containsValue(value: String) = value == this.value\n override fun get(key: String): String? = if (key == this.key) value else null\n override fun isEmpty() = false\n}\n","package kotlinx.html\n\ninline fun T.visitTag(block: T.() -> Unit) {\n consumer.onTagStart(this)\n try {\n this.block()\n } catch (err: Throwable) {\n consumer.onTagError(this, err)\n } finally {\n consumer.onTagEnd(this)\n }\n}\n\ninline fun T.visitTagAndFinalize(consumer: TagConsumer, block: T.() -> Unit): R {\n if (this.consumer !== consumer) {\n throw IllegalArgumentException(\"Wrong exception\")\n }\n\n visitTag(block)\n return consumer.finalize()\n}\n","package kotlinx.html.attributes\n\nimport kotlinx.html.*\n\ninterface AttributeEncoder {\n fun encode(attributeName: String, value: T): String\n fun decode(attributeName: String, value: String): T\n fun empty(attributeName: String, tag: Tag): T =\n throw IllegalStateException(\"Attribute $attributeName is not yet defined for tag ${tag.tagName}\")\n}\n\nabstract class Attribute(val encoder: AttributeEncoder) {\n open operator fun get(thisRef: Tag, attributeName: String): T =\n thisRef.attributes[attributeName]?.let {\n encoder.decode(attributeName, it)\n } ?: encoder.empty(attributeName, thisRef)\n\n open operator fun set(thisRef: Tag, attributeName: String, value: T) {\n thisRef.attributes.put(attributeName, encoder.encode(attributeName, value))\n }\n}\n\nobject StringEncoder : AttributeEncoder {\n override fun encode(attributeName: String, value: String): String = value\n override fun decode(attributeName: String, value: String): String = value\n}\n\nclass StringAttribute : Attribute(StringEncoder)\n\n//public class IntAttribute : Attribute() {\n// override fun encode(desc: PropertyMetadata, value: Int): String = value.toString()\n// override fun decode(desc: PropertyMetadata, value: String): Int = value.toInt()\n//}\n\nfun Boolean.booleanEncode() = toString()\nclass BooleanEncoder(val trueValue: String = \"true\", val falseValue: String = \"false\") : AttributeEncoder {\n override fun encode(attributeName: String, value: Boolean): String = if (value) trueValue else falseValue\n override fun decode(attributeName: String, value: String): Boolean = when (value) {\n trueValue -> true\n falseValue -> false\n else -> throw IllegalArgumentException(\"Unknown value $value for $attributeName\")\n }\n}\n\nclass BooleanAttribute(trueValue: String = \"true\", falseValue: String = \"false\") :\n Attribute(BooleanEncoder(trueValue, falseValue))\n\nfun Boolean.tickerEncode(attributeName: String): String = if (this) attributeName else \"\"\n\nobject TickerEncoder : AttributeEncoder {\n override fun encode(attributeName: String, value: Boolean): String = value.tickerEncode(attributeName)\n override fun decode(attributeName: String, value: String): Boolean = value == attributeName\n}\n\nclass TickerAttribute : Attribute(TickerEncoder) {\n override fun set(thisRef: Tag, attributeName: String, value: Boolean) {\n if (value) {\n thisRef.attributes.put(attributeName, attributeName)\n } else {\n thisRef.attributes.remove(attributeName)\n }\n }\n}\n\nclass EnumEncoder(val valuesMap: Map) : AttributeEncoder {\n override fun encode(attributeName: String, value: T): String = value.realValue\n override fun decode(attributeName: String, value: String): T =\n valuesMap[value] ?: throw IllegalArgumentException(\"Unknown value $value for $attributeName\")\n}\n\nfun AttributeEnum.enumEncode(): String = realValue\nclass EnumAttribute(val values: Map) : Attribute(EnumEncoder(values))\n\nfun stringSetDecode(value: String?): Set? = value?.split(\"\\\\s+\".toRegex())?.filterNot { it.isEmpty() }?.toSet()\nfun Set.stringSetEncode() = joinToString(\" \")\n\nobject StringSetEncoder : AttributeEncoder> {\n override fun encode(attributeName: String, value: Set): String = value.joinToString(\" \")\n override fun decode(attributeName: String, value: String): Set = stringSetDecode(value)!!\n override fun empty(attributeName: String, tag: Tag) = emptySet()\n}\n\nclass StringSetAttribute : Attribute>(StringSetEncoder)","/*\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}","package kotlinx.html\n\n\n@Deprecated(\"use legend instead\", ReplaceWith(\"legend(classes, block)\"))\nfun > C.legEnd(classes: String? = null, block: LEGEND.() -> Unit = {}): T = legend(classes, block)\n\n@Deprecated(\"use legend instead\", ReplaceWith(\"legend(classes, block)\"))\nfun DETAILS.legEnd(classes: String? = null, block: LEGEND.() -> Unit = {}): Unit = legend(classes, block)\n\n@Deprecated(\"use legend instead\", ReplaceWith(\"legend(classes, block)\"))\nfun FIELDSET.legEnd(classes: String? = null, block: LEGEND.() -> Unit = {}): Unit = legend(classes, block)\n\n@Deprecated(\"use legend instead\", ReplaceWith(\"legend(classes, block)\"))\nfun FIGURE.legEnd(classes: String? = null, block: LEGEND.() -> Unit = {}): Unit = legend(classes, block)\n\n@Deprecated(\"\", ReplaceWith(\"Draggable.htmlTrue\"))\ninline val Draggable.true_: Draggable\n get() = Draggable.htmlTrue\n\n@Deprecated(\"\", ReplaceWith(\"Draggable.htmlFalse\"))\ninline val Draggable.false_: Draggable\n get() = Draggable.htmlFalse\n\n@Deprecated(\"Use OBJECT instead\", ReplaceWith(\"OBJECT\", \"kotlinx.html.OBJECT\"))\ntypealias OBJECT_ = OBJECT\n\n@Deprecated(\"Use VAR type instead\", ReplaceWith(\"VAR\", \"kotlinx.html.VAR\"))\ntypealias VAR_ = VAR\n\n@Deprecated(\"\", ReplaceWith(\"htmlObject(classes, block)\", \"kotlinx.html.htmlObject\"))\nfun > C.object_(classes: String? = null, block: OBJECT.() -> Unit = {}): T =\n htmlObject(classes, block)\n\n@Deprecated(\"\", ReplaceWith(\"htmlVar(classes, block)\", \"kotlinx.html.htmlVar\"))\nfun > C.var_(classes: String? = null, block: VAR.() -> Unit = {}): T =\n htmlVar(classes, block)\n\n@Deprecated(\"Use htmlVar instead\", ReplaceWith(\"htmlVar(classes, block)\", \"kotlinx.html.htmlVar\"))\nfun FlowOrPhrasingContent.var_(classes: String? = null, block: VAR.() -> Unit) {\n htmlVar(classes, block)\n}\n\n@Deprecated(\"Use htmlObject instead\", ReplaceWith(\"htmlObject(classes, block)\", \"kotlinx.html.htmlObject\"))\nfun FlowOrInteractiveOrPhrasingContent.object_(classes: String? = null, block: OBJECT.() -> Unit = {}) =\n htmlObject(classes, block)\n\n@Deprecated(\"use htmlFor instead\", ReplaceWith(\"htmlFor\"))\nvar LABEL.for_: String\n get() = htmlFor\n set(value) {\n htmlFor = value\n }\n\n@Deprecated(\"use htmlFor instead\", ReplaceWith(\"htmlFor\"))\nvar OUTPUT.for_: String\n get() = htmlFor\n set(value) {\n htmlFor = value\n }\n\n@Deprecated(\"Use onTouchCancel instead\", ReplaceWith(\"onTouchCancel\"))\nvar CommonAttributeGroupFacade.onTouchcancel: String\n get() = onTouchCancel\n set(newValue) {\n onTouchCancel = newValue\n }\n\n@Deprecated(\"Use onTouchMove instead\", ReplaceWith(\"onTouchMove\"))\nvar CommonAttributeGroupFacade.onTouchmove: String\n get() = onTouchMove\n set(newValue) {\n onTouchMove = newValue\n }\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n/**\n * Anchor\n */\n@HtmlTagMarker\ninline fun > C.a(href : String? = null, target : String? = null, classes : String? = null, crossinline block : A.() -> Unit = {}) : T = A(attributesMapOf(\"href\", href,\"target\", target,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Abbreviated form (e.g., WWW, HTTP,etc.)\n */\n@HtmlTagMarker\ninline fun > C.abbr(classes : String? = null, crossinline block : ABBR.() -> Unit = {}) : T = ABBR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Information on author\n */\n@HtmlTagMarker\ninline fun > C.address(classes : String? = null, crossinline block : ADDRESS.() -> Unit = {}) : T = ADDRESS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Client-side image map area\n */\n@HtmlTagMarker\ninline fun > C.area(shape : AreaShape? = null, alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : T = AREA(attributesMapOf(\"Shape\", shape?.enumEncode(),\"alt\", alt,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Self-contained syndicatable or reusable composition\n */\n@HtmlTagMarker\ninline fun > C.article(classes : String? = null, crossinline block : ARTICLE.() -> Unit = {}) : T = ARTICLE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Sidebar for tangentially related content\n */\n@HtmlTagMarker\ninline fun > C.aside(classes : String? = null, crossinline block : ASIDE.() -> Unit = {}) : T = ASIDE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Audio player\n */\n@HtmlTagMarker\ninline fun > C.audio(classes : String? = null, crossinline block : AUDIO.() -> Unit = {}) : T = AUDIO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Bold text style\n */\n@HtmlTagMarker\ninline fun > C.b(classes : String? = null, crossinline block : B.() -> Unit = {}) : T = B(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document base URI\n */\n@HtmlTagMarker\ninline fun > C.base(classes : String? = null, crossinline block : BASE.() -> Unit = {}) : T = BASE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Text directionality isolation\n */\n@HtmlTagMarker\ninline fun > C.bdi(classes : String? = null, crossinline block : BDI.() -> Unit = {}) : T = BDI(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * I18N BiDi over-ride\n */\n@HtmlTagMarker\ninline fun > C.bdo(classes : String? = null, crossinline block : BDO.() -> Unit = {}) : T = BDO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Long quotation\n */\n@HtmlTagMarker\ninline fun > C.blockQuote(classes : String? = null, crossinline block : BLOCKQUOTE.() -> Unit = {}) : T = BLOCKQUOTE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document body\n */\n@HtmlTagMarker\ninline fun > C.body(classes : String? = null, crossinline block : BODY.() -> Unit = {}) : T = BODY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Forced line break\n */\n@HtmlTagMarker\ninline fun > C.br(classes : String? = null, crossinline block : BR.() -> Unit = {}) : T = BR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Push button\n */\n@HtmlTagMarker\ninline fun > C.button(formEncType : ButtonFormEncType? = null, formMethod : ButtonFormMethod? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : T = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\nfun > C.canvas(classes : String? = null, content : String = \"\") : T = CANVAS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\ninline fun > C.canvas(classes : String? = null, crossinline block : CANVAS.() -> Unit = {}) : T = CANVAS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table caption\n */\n@HtmlTagMarker\ninline fun > C.caption(classes : String? = null, crossinline block : CAPTION.() -> Unit = {}) : T = CAPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Citation\n */\n@HtmlTagMarker\ninline fun > C.cite(classes : String? = null, crossinline block : CITE.() -> Unit = {}) : T = CITE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Computer code fragment\n */\n@HtmlTagMarker\ninline fun > C.code(classes : String? = null, crossinline block : CODE.() -> Unit = {}) : T = CODE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table column\n */\n@HtmlTagMarker\ninline fun > C.col(classes : String? = null, crossinline block : COL.() -> Unit = {}) : T = COL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table column group\n */\n@HtmlTagMarker\ninline fun > C.colGroup(classes : String? = null, crossinline block : COLGROUP.() -> Unit = {}) : T = COLGROUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\ninline fun > C.command(type : CommandType? = null, classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : T = COMMAND(attributesMapOf(\"type\", type?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Container for options for \n */\n@HtmlTagMarker\ninline fun > C.dataList(classes : String? = null, crossinline block : DATALIST.() -> Unit = {}) : T = DATALIST(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Definition description\n */\n@HtmlTagMarker\ninline fun > C.dd(classes : String? = null, crossinline block : DD.() -> Unit = {}) : T = DD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Deleted text\n */\n@HtmlTagMarker\ninline fun > C.del(classes : String? = null, crossinline block : DEL.() -> Unit = {}) : T = DEL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Disclosure control for hiding details\n */\n@HtmlTagMarker\ninline fun > C.details(classes : String? = null, crossinline block : DETAILS.() -> Unit = {}) : T = DETAILS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Instance definition\n */\n@HtmlTagMarker\ninline fun > C.dfn(classes : String? = null, crossinline block : DFN.() -> Unit = {}) : T = DFN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Dialog box or window\n */\n@HtmlTagMarker\ninline fun > C.dialog(classes : String? = null, crossinline block : DIALOG.() -> Unit = {}) : T = DIALOG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\ninline fun > C.div(classes : String? = null, crossinline block : DIV.() -> Unit = {}) : T = DIV(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Definition list\n */\n@HtmlTagMarker\ninline fun > C.dl(classes : String? = null, crossinline block : DL.() -> Unit = {}) : T = DL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Definition term\n */\n@HtmlTagMarker\ninline fun > C.dt(classes : String? = null, crossinline block : DT.() -> Unit = {}) : T = DT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Emphasis\n */\n@HtmlTagMarker\ninline fun > C.em(classes : String? = null, crossinline block : EM.() -> Unit = {}) : T = EM(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Plugin\n */\n@HtmlTagMarker\ninline fun > C.embed(classes : String? = null, crossinline block : EMBED.() -> Unit = {}) : T = EMBED(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Form control group\n */\n@HtmlTagMarker\ninline fun > C.fieldSet(classes : String? = null, crossinline block : FIELDSET.() -> Unit = {}) : T = FIELDSET(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun > C.figcaption(classes : String? = null, crossinline block : FIGCAPTION.() -> Unit = {}) : T = FIGCAPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Figure with optional caption\n */\n@HtmlTagMarker\ninline fun > C.figure(classes : String? = null, crossinline block : FIGURE.() -> Unit = {}) : T = FIGURE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Footer for a page or section\n */\n@HtmlTagMarker\ninline fun > C.footer(classes : String? = null, crossinline block : FOOTER.() -> Unit = {}) : T = FOOTER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Interactive form\n */\n@HtmlTagMarker\ninline fun > C.form(action : String? = null, encType : FormEncType? = null, method : FormMethod? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : T = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", method?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h1(classes : String? = null, crossinline block : H1.() -> Unit = {}) : T = H1(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h2(classes : String? = null, crossinline block : H2.() -> Unit = {}) : T = H2(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h3(classes : String? = null, crossinline block : H3.() -> Unit = {}) : T = H3(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h4(classes : String? = null, crossinline block : H4.() -> Unit = {}) : T = H4(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h5(classes : String? = null, crossinline block : H5.() -> Unit = {}) : T = H5(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun > C.h6(classes : String? = null, crossinline block : H6.() -> Unit = {}) : T = H6(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document head\n */\n@HtmlTagMarker\nfun > C.head(content : String = \"\") : T = HEAD(emptyMap, this).visitAndFinalize(this, {+content})\n/**\n * Document head\n */\n@HtmlTagMarker\ninline fun > C.head(crossinline block : HEAD.() -> Unit = {}) : T = HEAD(emptyMap, this).visitAndFinalize(this, block)\n\n/**\n * Introductory or navigational aids for a page or section\n */\n@HtmlTagMarker\ninline fun > C.header(classes : String? = null, crossinline block : HEADER.() -> Unit = {}) : T = HEADER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\ninline fun > C.hGroup(classes : String? = null, crossinline block : HGROUP.() -> Unit = {}) : T = HGROUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Horizontal rule\n */\n@HtmlTagMarker\ninline fun > C.hr(classes : String? = null, crossinline block : HR.() -> Unit = {}) : T = HR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document root element\n */\n@HtmlTagMarker\nfun > C.html(content : String = \"\", namespace : String? = null) : T = HTML(emptyMap, this, namespace).visitAndFinalize(this, {+content})\n/**\n * Document root element\n */\n@HtmlTagMarker\ninline fun > C.html(namespace : String? = null, crossinline block : HTML.() -> Unit = {}) : T = HTML(emptyMap, this, namespace).visitAndFinalize(this, block)\n\n/**\n * Italic text style\n */\n@HtmlTagMarker\ninline fun > C.i(classes : String? = null, crossinline block : I.() -> Unit = {}) : T = I(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\nfun > C.iframe(sandbox : IframeSandbox? = null, classes : String? = null, content : String = \"\") : T = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\ninline fun > C.iframe(sandbox : IframeSandbox? = null, classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : T = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Embedded image\n */\n@HtmlTagMarker\ninline fun > C.img(alt : String? = null, src : String? = null, classes : String? = null, crossinline block : IMG.() -> Unit = {}) : T = IMG(attributesMapOf(\"alt\", alt,\"src\", src,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Form control\n */\n@HtmlTagMarker\ninline fun > C.input(type : InputType? = null, formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : T = INPUT(attributesMapOf(\"type\", type?.enumEncode(),\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Inserted text\n */\n@HtmlTagMarker\ninline fun > C.ins(classes : String? = null, crossinline block : INS.() -> Unit = {}) : T = INS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Text to be entered by the user\n */\n@HtmlTagMarker\ninline fun > C.kbd(classes : String? = null, crossinline block : KBD.() -> Unit = {}) : T = KBD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Cryptographic key-pair generator form control\n */\n@HtmlTagMarker\ninline fun > C.keyGen(keyType : KeyGenKeyType? = null, classes : String? = null, crossinline block : KEYGEN.() -> Unit = {}) : T = KEYGEN(attributesMapOf(\"keytype\", keyType?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Form field label text\n */\n@HtmlTagMarker\ninline fun > C.label(classes : String? = null, crossinline block : LABEL.() -> Unit = {}) : T = LABEL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\ninline fun > C.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : T = LEGEND(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * List item\n */\n@HtmlTagMarker\ninline fun > C.li(classes : String? = null, crossinline block : LI.() -> Unit = {}) : T = LI(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * A media-independent link\n */\n@HtmlTagMarker\ninline fun > C.link(href : String? = null, rel : String? = null, type : String? = null, crossinline block : LINK.() -> Unit = {}) : T = LINK(attributesMapOf(\"href\", href,\"rel\", rel,\"type\", type), this).visitAndFinalize(this, block)\n\n/**\n * Container for the dominant contents of another element\n */\n@HtmlTagMarker\ninline fun > C.main(classes : String? = null, crossinline block : MAIN.() -> Unit = {}) : T = MAIN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Client-side image map\n */\n@HtmlTagMarker\ninline fun > C.map(name : String? = null, classes : String? = null, crossinline block : MAP.() -> Unit = {}) : T = MAP(attributesMapOf(\"name\", name,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Highlight\n */\n@HtmlTagMarker\ninline fun > C.mark(classes : String? = null, crossinline block : MARK.() -> Unit = {}) : T = MARK(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\ninline fun > C.math(classes : String? = null, crossinline block : MATH.() -> Unit = {}) : T = MATH(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\nfun > C.mathml(classes : String? = null, content : String = \"\") : T = MATHML(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n@HtmlTagMarker\ninline fun > C.mathml(classes : String? = null, crossinline block : MATHML.() -> Unit = {}) : T = MATHML(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\ninline fun > C.meta(name : String? = null, content : String? = null, charset : String? = null, crossinline block : META.() -> Unit = {}) : T = META(attributesMapOf(\"name\", name,\"content\", content,\"charset\", charset), this).visitAndFinalize(this, block)\n\n/**\n * Gauge\n */\n@HtmlTagMarker\ninline fun > C.meter(classes : String? = null, crossinline block : METER.() -> Unit = {}) : T = METER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Section with navigational links\n */\n@HtmlTagMarker\ninline fun > C.nav(classes : String? = null, crossinline block : NAV.() -> Unit = {}) : T = NAV(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\ninline fun > C.noScript(classes : String? = null, crossinline block : NOSCRIPT.() -> Unit = {}) : T = NOSCRIPT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic embedded object\n */\n@HtmlTagMarker\ninline fun > C.htmlObject(classes : String? = null, crossinline block : OBJECT.() -> Unit = {}) : T = OBJECT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ordered list\n */\n@HtmlTagMarker\ninline fun > C.ol(classes : String? = null, crossinline block : OL.() -> Unit = {}) : T = OL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Option group\n */\n@HtmlTagMarker\ninline fun > C.optGroup(label : String? = null, classes : String? = null, crossinline block : OPTGROUP.() -> Unit = {}) : T = OPTGROUP(attributesMapOf(\"label\", label,\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Selectable choice\n */\n@HtmlTagMarker\nfun > C.option(classes : String? = null, content : String = \"\") : T = OPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Selectable choice\n */\n@HtmlTagMarker\ninline fun > C.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : T = OPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Calculated output value\n */\n@HtmlTagMarker\ninline fun > C.output(classes : String? = null, crossinline block : OUTPUT.() -> Unit = {}) : T = OUTPUT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Paragraph\n */\n@HtmlTagMarker\ninline fun > C.p(classes : String? = null, crossinline block : P.() -> Unit = {}) : T = P(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Named property value\n */\n@HtmlTagMarker\ninline fun > C.param(name : String? = null, value : String? = null, crossinline block : PARAM.() -> Unit = {}) : T = PARAM(attributesMapOf(\"name\", name,\"value\", value), this).visitAndFinalize(this, block)\n\n/**\n * Pictures container\n */\n@HtmlTagMarker\ninline fun > C.picture(crossinline block : PICTURE.() -> Unit = {}) : T = PICTURE(emptyMap, this).visitAndFinalize(this, block)\n\n/**\n * Preformatted text\n */\n@HtmlTagMarker\ninline fun > C.pre(classes : String? = null, crossinline block : PRE.() -> Unit = {}) : T = PRE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Progress bar\n */\n@HtmlTagMarker\ninline fun > C.progress(classes : String? = null, crossinline block : PROGRESS.() -> Unit = {}) : T = PROGRESS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Short inline quotation\n */\n@HtmlTagMarker\ninline fun > C.q(classes : String? = null, crossinline block : Q.() -> Unit = {}) : T = Q(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Parenthesis for ruby annotation text\n */\n@HtmlTagMarker\ninline fun > C.rp(classes : String? = null, crossinline block : RP.() -> Unit = {}) : T = RP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ruby annotation text\n */\n@HtmlTagMarker\ninline fun > C.rt(classes : String? = null, crossinline block : RT.() -> Unit = {}) : T = RT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ruby annotation(s)\n */\n@HtmlTagMarker\ninline fun > C.ruby(classes : String? = null, crossinline block : RUBY.() -> Unit = {}) : T = RUBY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Strike-through text style\n */\n@HtmlTagMarker\ninline fun > C.samp(classes : String? = null, crossinline block : SAMP.() -> Unit = {}) : T = SAMP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Script statements\n */\n@HtmlTagMarker\nfun > C.script(type : String? = null, src : String? = null, content : String = \"\") : T = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), this).visitAndFinalize(this, {+content})\n/**\n * Script statements\n */\n@HtmlTagMarker\ninline fun > C.script(type : String? = null, src : String? = null, crossinline block : SCRIPT.() -> Unit = {}) : T = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), this).visitAndFinalize(this, block)\n\n/**\n * Generic document or application section\n */\n@HtmlTagMarker\ninline fun > C.section(classes : String? = null, crossinline block : SECTION.() -> Unit = {}) : T = SECTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Option selector\n */\n@HtmlTagMarker\ninline fun > C.select(classes : String? = null, crossinline block : SELECT.() -> Unit = {}) : T = SELECT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Small text style\n */\n@HtmlTagMarker\ninline fun > C.small(classes : String? = null, crossinline block : SMALL.() -> Unit = {}) : T = SMALL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Media source for \n */\n@HtmlTagMarker\ninline fun > C.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : T = SOURCE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\ninline fun > C.span(classes : String? = null, crossinline block : SPAN.() -> Unit = {}) : T = SPAN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Strong emphasis\n */\n@HtmlTagMarker\ninline fun > C.strong(classes : String? = null, crossinline block : STRONG.() -> Unit = {}) : T = STRONG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Style info\n */\n@HtmlTagMarker\nfun > C.style(type : String? = null, content : String = \"\") : T = STYLE(attributesMapOf(\"type\", type), this).visitAndFinalize(this, {+content})\n/**\n * Style info\n */\n@HtmlTagMarker\ninline fun > C.style(type : String? = null, crossinline block : STYLE.() -> Unit = {}) : T = STYLE(attributesMapOf(\"type\", type), this).visitAndFinalize(this, block)\n\n/**\n * Subscript\n */\n@HtmlTagMarker\ninline fun > C.sub(classes : String? = null, crossinline block : SUB.() -> Unit = {}) : T = SUB(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun > C.summary(classes : String? = null, crossinline block : SUMMARY.() -> Unit = {}) : T = SUMMARY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Superscript\n */\n@HtmlTagMarker\ninline fun > C.sup(classes : String? = null, crossinline block : SUP.() -> Unit = {}) : T = SUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\nfun > C.svg(classes : String? = null, content : String = \"\") : T = SVG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n@HtmlTagMarker\ninline fun > C.svg(classes : String? = null, crossinline block : SVG.() -> Unit = {}) : T = SVG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * \n */\n@HtmlTagMarker\ninline fun > C.table(classes : String? = null, crossinline block : TABLE.() -> Unit = {}) : T = TABLE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table body\n */\n@HtmlTagMarker\ninline fun > C.tbody(classes : String? = null, crossinline block : TBODY.() -> Unit = {}) : T = TBODY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table data cell\n */\n@HtmlTagMarker\ninline fun > C.td(classes : String? = null, crossinline block : TD.() -> Unit = {}) : T = TD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\nfun > C.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, content : String = \"\") : T = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\ninline fun > C.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : T = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table footer\n */\n@HtmlTagMarker\ninline fun > C.tfoot(classes : String? = null, crossinline block : TFOOT.() -> Unit = {}) : T = TFOOT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table header cell\n */\n@HtmlTagMarker\ninline fun > C.th(scope : ThScope? = null, classes : String? = null, crossinline block : TH.() -> Unit = {}) : T = TH(attributesMapOf(\"scope\", scope?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table header\n */\n@HtmlTagMarker\ninline fun > C.thead(classes : String? = null, crossinline block : THEAD.() -> Unit = {}) : T = THEAD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Machine-readable equivalent of date- or time-related data\n */\n@HtmlTagMarker\ninline fun > C.time(classes : String? = null, crossinline block : TIME.() -> Unit = {}) : T = TIME(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document title\n */\n@HtmlTagMarker\nfun > C.title(content : String = \"\") : T = TITLE(emptyMap, this).visitAndFinalize(this, {+content})\n/**\n * Document title\n */\n@HtmlTagMarker\ninline fun > C.title(crossinline block : TITLE.() -> Unit = {}) : T = TITLE(emptyMap, this).visitAndFinalize(this, block)\n\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun > C.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : T = TR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\ninline fun > C.ul(classes : String? = null, crossinline block : UL.() -> Unit = {}) : T = UL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\ninline fun > C.htmlVar(classes : String? = null, crossinline block : VAR.() -> Unit = {}) : T = VAR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Video player\n */\n@HtmlTagMarker\ninline fun > C.video(classes : String? = null, crossinline block : VIDEO.() -> Unit = {}) : T = VIDEO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class DATALIST(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"datalist\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\n/**\n * Selectable choice\n */\n@HtmlTagMarker\ninline fun DATALIST.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n/**\n * Selectable choice\n */\n@HtmlTagMarker\nfun DATALIST.option(classes : String? = null, content : String = \"\") : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\nval DATALIST.asFlowContent : FlowContent\n get() = this\n\nval DATALIST.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class DD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dd\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class DEL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"del\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n var cite : String\n get() = attributeStringString.get(this, \"cite\")\n set(newValue) {attributeStringString.set(this, \"cite\", newValue)}\n\n var dateTime : String\n get() = attributeStringString.get(this, \"datetime\")\n set(newValue) {attributeStringString.set(this, \"datetime\", newValue)}\n\n\n}\nval DEL.asFlowContent : FlowContent\n get() = this\n\nval DEL.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class DETAILS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"details\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowInteractiveContent {\n var open : Boolean\n get() = attributeBooleanTicker.get(this, \"open\")\n set(newValue) {attributeBooleanTicker.set(this, \"open\", newValue)}\n\n\n}\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\ninline fun DETAILS.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : Unit = LEGEND(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval DETAILS.asFlowContent : FlowContent\n get() = this\n\nval DETAILS.asInteractiveContent : InteractiveContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class DFN(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dfn\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval DFN.asFlowContent : FlowContent\n get() = this\n\nval DFN.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class DIALOG(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dialog\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class DIV(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"div\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class DL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dl\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n/**\n * Definition description\n */\n@HtmlTagMarker\ninline fun DL.dd(classes : String? = null, crossinline block : DD.() -> Unit = {}) : Unit = DD(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Definition term\n */\n@HtmlTagMarker\ninline fun DL.dt(classes : String? = null, crossinline block : DT.() -> Unit = {}) : Unit = DT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class DT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"dt\", consumer, initialAttributes, null, false, false), HtmlInlineTag {\n\n}\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class FIELDSET(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"fieldset\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\ninline fun FIELDSET.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : Unit = LEGEND(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class FIGCAPTION(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"figcaption\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class FIGURE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"figure\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\ninline fun FIGURE.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : Unit = LEGEND(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun FIGURE.figcaption(classes : String? = null, crossinline block : FIGCAPTION.() -> Unit = {}) : Unit = FIGCAPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class FOOTER(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"footer\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class FORM(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"form\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var acceptCharset : String\n get() = attributeStringString.get(this, \"accept-charset\")\n set(newValue) {attributeStringString.set(this, \"accept-charset\", newValue)}\n\n var action : String\n get() = attributeStringString.get(this, \"action\")\n set(newValue) {attributeStringString.set(this, \"action\", newValue)}\n\n var autoComplete : Boolean\n get() = attributeBooleanBooleanOnOff.get(this, \"autocomplete\")\n set(newValue) {attributeBooleanBooleanOnOff.set(this, \"autocomplete\", newValue)}\n\n var encType : FormEncType\n get() = attributeFormEncTypeEnumFormEncTypeValues.get(this, \"enctype\")\n set(newValue) {attributeFormEncTypeEnumFormEncTypeValues.set(this, \"enctype\", newValue)}\n\n var method : FormMethod\n get() = attributeFormMethodEnumFormMethodValues.get(this, \"method\")\n set(newValue) {attributeFormMethodEnumFormMethodValues.set(this, \"method\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var novalidate : Boolean\n get() = attributeBooleanTicker.get(this, \"novalidate\")\n set(newValue) {attributeBooleanTicker.set(this, \"novalidate\", newValue)}\n\n var target : String\n get() = attributeStringString.get(this, \"target\")\n set(newValue) {attributeStringString.set(this, \"target\", newValue)}\n\n\n}\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\ninterface FlowOrMetaDataOrPhrasingContent : Tag {\n}\n\ninterface FlowOrHeadingContent : Tag {\n}\n\ninterface FlowOrMetaDataContent : FlowOrMetaDataOrPhrasingContent, Tag {\n}\n\ninterface FlowOrInteractiveContent : FlowOrInteractiveOrPhrasingContent, Tag {\n}\n\ninterface FlowOrPhrasingContent : FlowOrInteractiveOrPhrasingContent, FlowOrMetaDataOrPhrasingContent, Tag {\n}\n\ninterface SectioningOrFlowContent : Tag {\n}\n\ninterface FlowOrInteractiveOrPhrasingContent : Tag {\n}\n\n\n\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.command(type : CommandType? = null, classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : Unit = COMMAND(attributesMapOf(\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.commandCommand(classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : Unit = COMMAND(attributesMapOf(\"type\", CommandType.command.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.checkBoxCommand(classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : Unit = COMMAND(attributesMapOf(\"type\", CommandType.checkBox.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.radioCommand(classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : Unit = COMMAND(attributesMapOf(\"type\", CommandType.radio.realValue,\"class\", classes), consumer).visit(block)\n\n/**\n * A media-independent link\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.link(href : String? = null, rel : String? = null, type : String? = null, crossinline block : LINK.() -> Unit = {}) : Unit = LINK(attributesMapOf(\"href\", href,\"rel\", rel,\"type\", type), consumer).visit(block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.meta(name : String? = null, content : String? = null, charset : String? = null, crossinline block : META.() -> Unit = {}) : Unit = META(attributesMapOf(\"name\", name,\"content\", content,\"charset\", charset), consumer).visit(block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.noScript(classes : String? = null, crossinline block : NOSCRIPT.() -> Unit = {}) : Unit = NOSCRIPT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Script statements\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataOrPhrasingContent.script(type : String? = null, src : String? = null, crossinline block : SCRIPT.() -> Unit = {}) : Unit = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), consumer).visit(block)\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Script statements\n */\n@HtmlTagMarker\nfun FlowOrMetaDataOrPhrasingContent.script(type : String? = null, src : String? = null, content : String = \"\") : Unit = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), consumer).visit({+content})\n\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h1(classes : String? = null, crossinline block : H1.() -> Unit = {}) : Unit = H1(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h2(classes : String? = null, crossinline block : H2.() -> Unit = {}) : Unit = H2(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h3(classes : String? = null, crossinline block : H3.() -> Unit = {}) : Unit = H3(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h4(classes : String? = null, crossinline block : H4.() -> Unit = {}) : Unit = H4(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h5(classes : String? = null, crossinline block : H5.() -> Unit = {}) : Unit = H5(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.h6(classes : String? = null, crossinline block : H6.() -> Unit = {}) : Unit = H6(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n@HtmlTagMarker\ninline fun FlowOrHeadingContent.hGroup(classes : String? = null, crossinline block : HGROUP.() -> Unit = {}) : Unit = HGROUP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n/**\n * Style info\n */\n@HtmlTagMarker\ninline fun FlowOrMetaDataContent.style(type : String? = null, crossinline block : STYLE.() -> Unit = {}) : Unit = STYLE(attributesMapOf(\"type\", type), consumer).visit(block)\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Style info\n */\n@HtmlTagMarker\nfun FlowOrMetaDataContent.style(type : String? = null, content : String = \"\") : Unit = STYLE(attributesMapOf(\"type\", type), consumer).visit({+content})\n\n\n/**\n * Disclosure control for hiding details\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveContent.details(classes : String? = null, crossinline block : DETAILS.() -> Unit = {}) : Unit = DETAILS(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n/**\n * Abbreviated form (e.g., WWW, HTTP,etc.)\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.abbr(classes : String? = null, crossinline block : ABBR.() -> Unit = {}) : Unit = ABBR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Client-side image map area\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.area(shape : AreaShape? = null, alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", shape?.enumEncode(),\"alt\", alt,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.rectArea(alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", AreaShape.rect.realValue,\"alt\", alt,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.circleArea(alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", AreaShape.circle.realValue,\"alt\", alt,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.polyArea(alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", AreaShape.poly.realValue,\"alt\", alt,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.defaultArea(alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : Unit = AREA(attributesMapOf(\"Shape\", AreaShape.default.realValue,\"alt\", alt,\"class\", classes), consumer).visit(block)\n\n/**\n * Bold text style\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.b(classes : String? = null, crossinline block : B.() -> Unit = {}) : Unit = B(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Text directionality isolation\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.bdi(classes : String? = null, crossinline block : BDI.() -> Unit = {}) : Unit = BDI(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * I18N BiDi over-ride\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.bdo(classes : String? = null, crossinline block : BDO.() -> Unit = {}) : Unit = BDO(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Forced line break\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.br(classes : String? = null, crossinline block : BR.() -> Unit = {}) : Unit = BR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.canvas(classes : String? = null, crossinline block : CANVAS.() -> Unit = {}) : Unit = CANVAS(attributesMapOf(\"class\", classes), consumer).visit(block)\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\nfun FlowOrPhrasingContent.canvas(classes : String? = null, content : String = \"\") : Unit = CANVAS(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\n/**\n * Citation\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.cite(classes : String? = null, crossinline block : CITE.() -> Unit = {}) : Unit = CITE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Computer code fragment\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.code(classes : String? = null, crossinline block : CODE.() -> Unit = {}) : Unit = CODE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Container for options for \n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.dataList(classes : String? = null, crossinline block : DATALIST.() -> Unit = {}) : Unit = DATALIST(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Deleted text\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.del(classes : String? = null, crossinline block : DEL.() -> Unit = {}) : Unit = DEL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Instance definition\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.dfn(classes : String? = null, crossinline block : DFN.() -> Unit = {}) : Unit = DFN(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Emphasis\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.em(classes : String? = null, crossinline block : EM.() -> Unit = {}) : Unit = EM(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Italic text style\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.i(classes : String? = null, crossinline block : I.() -> Unit = {}) : Unit = I(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Inserted text\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.ins(classes : String? = null, crossinline block : INS.() -> Unit = {}) : Unit = INS(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Text to be entered by the user\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.kbd(classes : String? = null, crossinline block : KBD.() -> Unit = {}) : Unit = KBD(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Client-side image map\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.map(name : String? = null, classes : String? = null, crossinline block : MAP.() -> Unit = {}) : Unit = MAP(attributesMapOf(\"name\", name,\"class\", classes), consumer).visit(block)\n\n/**\n * Highlight\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.mark(classes : String? = null, crossinline block : MARK.() -> Unit = {}) : Unit = MARK(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.math(classes : String? = null, crossinline block : MATH.() -> Unit = {}) : Unit = MATH(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Gauge\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.meter(classes : String? = null, crossinline block : METER.() -> Unit = {}) : Unit = METER(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Calculated output value\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.output(classes : String? = null, crossinline block : OUTPUT.() -> Unit = {}) : Unit = OUTPUT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Progress bar\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.progress(classes : String? = null, crossinline block : PROGRESS.() -> Unit = {}) : Unit = PROGRESS(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Short inline quotation\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.q(classes : String? = null, crossinline block : Q.() -> Unit = {}) : Unit = Q(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Ruby annotation(s)\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.ruby(classes : String? = null, crossinline block : RUBY.() -> Unit = {}) : Unit = RUBY(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Strike-through text style\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.samp(classes : String? = null, crossinline block : SAMP.() -> Unit = {}) : Unit = SAMP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Small text style\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.small(classes : String? = null, crossinline block : SMALL.() -> Unit = {}) : Unit = SMALL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.span(classes : String? = null, crossinline block : SPAN.() -> Unit = {}) : Unit = SPAN(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Strong emphasis\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.strong(classes : String? = null, crossinline block : STRONG.() -> Unit = {}) : Unit = STRONG(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Subscript\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.sub(classes : String? = null, crossinline block : SUB.() -> Unit = {}) : Unit = SUB(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Superscript\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.sup(classes : String? = null, crossinline block : SUP.() -> Unit = {}) : Unit = SUP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.svg(classes : String? = null, crossinline block : SVG.() -> Unit = {}) : Unit = SVG(attributesMapOf(\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\nfun FlowOrPhrasingContent.svg(classes : String? = null, content : String = \"\") : Unit = SVG(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\n/**\n * Machine-readable equivalent of date- or time-related data\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.time(classes : String? = null, crossinline block : TIME.() -> Unit = {}) : Unit = TIME(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\ninline fun FlowOrPhrasingContent.htmlVar(classes : String? = null, crossinline block : VAR.() -> Unit = {}) : Unit = VAR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n/**\n * Self-contained syndicatable or reusable composition\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.article(classes : String? = null, crossinline block : ARTICLE.() -> Unit = {}) : Unit = ARTICLE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Sidebar for tangentially related content\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.aside(classes : String? = null, crossinline block : ASIDE.() -> Unit = {}) : Unit = ASIDE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Container for the dominant contents of another element\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.main(classes : String? = null, crossinline block : MAIN.() -> Unit = {}) : Unit = MAIN(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Section with navigational links\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.nav(classes : String? = null, crossinline block : NAV.() -> Unit = {}) : Unit = NAV(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Generic document or application section\n */\n@HtmlTagMarker\ninline fun SectioningOrFlowContent.section(classes : String? = null, crossinline block : SECTION.() -> Unit = {}) : Unit = SECTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n/**\n * Anchor\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.a(href : String? = null, target : String? = null, classes : String? = null, crossinline block : A.() -> Unit = {}) : Unit = A(attributesMapOf(\"href\", href,\"target\", target,\"class\", classes), consumer).visit(block)\n\n/**\n * Audio player\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.audio(classes : String? = null, crossinline block : AUDIO.() -> Unit = {}) : Unit = AUDIO(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Push button\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.button(formEncType : ButtonFormEncType? = null, formMethod : ButtonFormMethod? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.getButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.get.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.postButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.post.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.putButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.put.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.deleteButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.delete.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.patchButton(formEncType : ButtonFormEncType? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : Unit = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", ButtonFormMethod.patch.realValue,\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), consumer).visit(block)\n\n/**\n * Plugin\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.embed(classes : String? = null, crossinline block : EMBED.() -> Unit = {}) : Unit = EMBED(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.iframe(sandbox : IframeSandbox? = null, classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : Unit = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), consumer).visit(block)\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.iframe(sandbox : IframeSandbox? = null, classes : String? = null, content : String = \"\") : Unit = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.allowSameOriginIframe(classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowSameOrigin.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.allowFormSIframe(classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowFormS.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.allowScriptsIframe(classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowScripts.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.allowSameOriginIframe(classes : String? = null, content : String = \"\") : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowSameOrigin.realValue,\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.allowFormSIframe(classes : String? = null, content : String = \"\") : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowFormS.realValue,\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.allowScriptsIframe(classes : String? = null, content : String = \"\") : Unit = IFRAME(attributesMapOf(\"sandbox\", IframeSandbox.allowScripts.realValue,\"class\", classes), consumer).visit({+content})\n\n/**\n * Embedded image\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.img(alt : String? = null, src : String? = null, classes : String? = null, crossinline block : IMG.() -> Unit = {}) : Unit = IMG(attributesMapOf(\"alt\", alt,\"src\", src,\"class\", classes), consumer).visit(block)\n\n/**\n * Pictures container\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.picture(crossinline block : PICTURE.() -> Unit = {}) : Unit = PICTURE(emptyMap, consumer).visit(block)\n\n/**\n * Form control\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.input(type : InputType? = null, formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", type?.enumEncode(),\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.buttonInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.button.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.checkBoxInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.checkBox.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.colorInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.color.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.dateInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.date.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.dateTimeInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.dateTime.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.dateTimeLocalInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.dateTimeLocal.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.emailInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.email.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.fileInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.file.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.hiddenInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.hidden.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.imageInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.image.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.monthInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.month.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.numberInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.number.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.passwordInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.password.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.radioInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.radio.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.rangeInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.range.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.resetInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.reset.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.searchInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.search.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.submitInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.submit.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.textInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.text.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.telInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.tel.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.timeInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.time.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.urlInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.url.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.weekInput(formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : Unit = INPUT(attributesMapOf(\"type\", InputType.week.realValue,\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), consumer).visit(block)\n\n/**\n * Cryptographic key-pair generator form control\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.keyGen(keyType : KeyGenKeyType? = null, classes : String? = null, crossinline block : KEYGEN.() -> Unit = {}) : Unit = KEYGEN(attributesMapOf(\"keytype\", keyType?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.rsaKeyGen(classes : String? = null, crossinline block : KEYGEN.() -> Unit = {}) : Unit = KEYGEN(attributesMapOf(\"keytype\", KeyGenKeyType.rsa.realValue,\"class\", classes), consumer).visit(block)\n\n/**\n * Form field label text\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.label(classes : String? = null, crossinline block : LABEL.() -> Unit = {}) : Unit = LABEL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Generic embedded object\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.htmlObject(classes : String? = null, crossinline block : OBJECT.() -> Unit = {}) : Unit = OBJECT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Option selector\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.select(classes : String? = null, crossinline block : SELECT.() -> Unit = {}) : Unit = SELECT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), consumer).visit(block)\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, content : String = \"\") : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.hardTextArea(rows : String? = null, cols : String? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", TextAreaWrap.hard.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.softTextArea(rows : String? = null, cols : String? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", TextAreaWrap.soft.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.hardTextArea(rows : String? = null, cols : String? = null, classes : String? = null, content : String = \"\") : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", TextAreaWrap.hard.realValue,\"class\", classes), consumer).visit({+content})\n@HtmlTagMarker\nfun FlowOrInteractiveOrPhrasingContent.softTextArea(rows : String? = null, cols : String? = null, classes : String? = null, content : String = \"\") : Unit = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", TextAreaWrap.soft.realValue,\"class\", classes), consumer).visit({+content})\n\n/**\n * Video player\n */\n@HtmlTagMarker\ninline fun FlowOrInteractiveOrPhrasingContent.video(classes : String? = null, crossinline block : VIDEO.() -> Unit = {}) : Unit = VIDEO(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\nimport kotlinx.html.org.w3c.dom.events.Event\n\nclass DelayedConsumer(val downstream: TagConsumer) : TagConsumer {\n private var delayed: Tag? = null\n\n override fun onTagStart(tag: Tag) {\n processDelayedTag()\n delayed = tag\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n if (delayed == null || delayed != tag) {\n throw IllegalStateException(\"You can't change tag attribute because it was already passed to the downstream\")\n }\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n if (delayed == null || delayed != tag) {\n throw IllegalStateException(\"You can't change tag attribute because it was already passed to the downstream\")\n }\n }\n\n override fun onTagEnd(tag: Tag) {\n processDelayedTag()\n downstream.onTagEnd(tag)\n }\n\n override fun onTagContent(content: CharSequence) {\n processDelayedTag()\n downstream.onTagContent(content)\n }\n\n override fun onTagContentEntity(entity: Entities) {\n processDelayedTag()\n downstream.onTagContentEntity(entity)\n }\n\n override fun onTagError(tag: Tag, exception: Throwable) {\n processDelayedTag()\n downstream.onTagError(tag, exception)\n }\n\n override fun onTagComment(content: CharSequence) {\n processDelayedTag()\n downstream.onTagComment(content)\n }\n\n override fun finalize(): T {\n processDelayedTag()\n return downstream.finalize()\n }\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n processDelayedTag()\n return downstream.onTagContentUnsafe(block)\n }\n\n private fun processDelayedTag() {\n delayed?.let { tag ->\n delayed = null\n downstream.onTagStart(tag)\n }\n }\n}\n\nfun TagConsumer.delayed(): TagConsumer = if (this is DelayedConsumer) this else DelayedConsumer(this)","package kotlinx.html.impl\n\nimport kotlinx.html.*\n\nclass DelegatingMap(\n initialValues: Map,\n private val tag: Tag,\n private val consumer: () -> TagConsumer<*>\n) : MutableMap {\n private var backing: Map = initialValues\n private var backingMutable = false\n\n override val size: Int\n get() = backing.size\n\n override fun isEmpty(): Boolean = backing.isEmpty()\n\n override fun containsKey(key: String): Boolean = backing.containsKey(key)\n override fun containsValue(value: String): Boolean = backing.containsValue(value)\n override fun get(key: String): String? = backing[key]\n\n override fun put(key: String, value: String): String? {\n val mutable = switchToMutable()\n\n val old = mutable.put(key, value)\n if (old != value) {\n consumer().onTagAttributeChange(tag, key, value)\n }\n\n return old\n }\n\n override fun remove(key: String): String? {\n val mutable = switchToMutable()\n\n return mutable.remove(key)?.let { removed ->\n consumer().onTagAttributeChange(tag, key, null)\n removed\n }\n }\n\n override fun putAll(from: Map) {\n if (from.isEmpty()) return\n\n val consumer = consumer()\n val mutable = switchToMutable()\n\n from.entries.forEach { e ->\n if (mutable.put(e.key, e.value) != e.value) {\n consumer.onTagAttributeChange(tag, e.key, e.value)\n }\n }\n }\n\n override fun clear() {\n backing.forEach { e -> consumer().onTagAttributeChange(tag, e.key, null) }\n backing = emptyMap()\n backingMutable = false\n }\n\n val immutableEntries: Collection>\n get() = backing.entries\n\n private fun switchToMutable(): MutableMap = if (backingMutable) {\n backing\n } else {\n backingMutable = true\n backing = LinkedHashMap(backing)\n backing\n } as MutableMap\n\n override val keys: MutableSet\n get() = switchToMutable().keys // TODO we need to handle changes too\n\n override val values: MutableCollection\n get() = switchToMutable().values // TODO we need to handle changes too\n\n override val entries: MutableSet>\n get() = switchToMutable().entries // TODO we need to handle changes too\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@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 * @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 */\npublic fun Map.asSequence(): Sequence> {\n return entries.asSequence()\n}\n\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\n\nprivate class DelegatingExceptionConsumer(\n val underlying: TagConsumer,\n val handler: TagConsumer.(Throwable) -> Unit\n) : TagConsumer by underlying {\n\n override fun onTagError(tag: Tag, exception: Throwable) = handler(underlying, exception)\n}\n\n/**\n * Allows simple exception handling. Any exceptions will forwarded to `handler` function.\n * For more control of error handling, implement `onTagError` in your subclass of `TagConsumer`\n */\nfun TagConsumer.catch(handler: TagConsumer.(Throwable) -> Unit): TagConsumer\n = DelegatingExceptionConsumer(this, handler)\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\nimport kotlinx.html.org.w3c.dom.events.Event\n\nobject PredicateResults {\n val PASS = PredicateResult.PASS\n val SKIP = PredicateResult.SKIP\n val DROP = PredicateResult.DROP\n}\n\nenum class PredicateResult {\n PASS,\n SKIP,\n DROP\n}\n\nprivate class FilterTagConsumer(val downstream: TagConsumer, val predicate: (Tag) -> PredicateResult) :\n TagConsumer {\n private var currentLevel = 0\n private var skippedLevels = HashSet()\n private var dropLevel: Int? = null\n\n override fun onTagStart(tag: Tag) {\n currentLevel++\n\n if (dropLevel == null) {\n when (predicate(tag)) {\n PredicateResult.PASS -> downstream.onTagStart(tag)\n PredicateResult.SKIP -> skippedLevels.add(currentLevel)\n PredicateResult.DROP -> dropLevel = currentLevel\n }\n }\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n throw UnsupportedOperationException(\"this filter doesn't support attribute change\")\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n throw UnsupportedOperationException(\"this filter doesn't support attribute change\")\n }\n\n override fun onTagEnd(tag: Tag) {\n if (canPassCurrentLevel()) {\n downstream.onTagEnd(tag)\n }\n\n skippedLevels.remove(currentLevel)\n if (dropLevel == currentLevel) {\n dropLevel = null\n }\n\n currentLevel--\n }\n\n override fun onTagContent(content: CharSequence) {\n if (canPassCurrentLevel()) {\n downstream.onTagContent(content)\n }\n }\n\n override fun onTagContentEntity(entity: Entities) {\n if (canPassCurrentLevel()) {\n downstream.onTagContentEntity(entity)\n }\n }\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n if (canPassCurrentLevel()) {\n downstream.onTagContentUnsafe(block)\n }\n }\n\n private fun canPassCurrentLevel() = dropLevel == null && currentLevel !in skippedLevels\n\n override fun onTagError(tag: Tag, exception: Throwable) {\n if (canPassCurrentLevel()) {\n downstream.onTagError(tag, exception)\n }\n }\n\n override fun onTagComment(content: CharSequence) {\n if (canPassCurrentLevel()) {\n downstream.onTagComment(content)\n }\n }\n\n override fun finalize(): T = downstream.finalize()\n}\n\nfun TagConsumer.filter(predicate: PredicateResults.(Tag) -> PredicateResult): TagConsumer =\n FilterTagConsumer(this) { PredicateResults.predicate(it) }.delayed()","package kotlinx.html.consumers\n\nimport kotlinx.html.*\nimport kotlinx.html.org.w3c.dom.events.Event\n\nclass FinalizeConsumer(val downstream: TagConsumer, val block: (F, Boolean) -> T) : TagConsumer {\n private var level = 0\n\n override fun onTagStart(tag: Tag) {\n downstream.onTagStart(tag)\n level++\n }\n\n override fun onTagEnd(tag: Tag) {\n downstream.onTagEnd(tag)\n level--\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) =\n downstream.onTagAttributeChange(tag, attribute, value)\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) = downstream.onTagEvent(tag, event, value)\n override fun onTagContent(content: CharSequence) = downstream.onTagContent(content)\n override fun onTagContentEntity(entity: Entities) = downstream.onTagContentEntity(entity)\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) = downstream.onTagContentUnsafe(block)\n override fun onTagError(tag: Tag, exception: Throwable) = downstream.onTagError(tag, exception)\n override fun onTagComment(content: CharSequence) = downstream.onTagComment(content)\n\n override fun finalize() = block(downstream.finalize(), level > 0)\n}\n\npublic fun TagConsumer.onFinalize(block: (from: T, partial: Boolean) -> Unit): TagConsumer =\n FinalizeConsumer(this) { to, partial -> block(to, partial); to }\n\npublic fun TagConsumer.onFinalizeMap(block: (from: F, partial: Boolean) -> T): TagConsumer =\n FinalizeConsumer(this, block)","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\ninterface CommonAttributeGroupFacade : Tag {\n}\nvar CommonAttributeGroupFacade.enableTheming : Boolean\n get() = attributeBooleanBoolean.get(this, \"EnableTheming\")\n set(newValue) {attributeBooleanBoolean.set(this, \"EnableTheming\", newValue)}\n\nvar CommonAttributeGroupFacade.enableViewState : Boolean\n get() = attributeBooleanBoolean.get(this, \"EnableViewState\")\n set(newValue) {attributeBooleanBoolean.set(this, \"EnableViewState\", newValue)}\n\nvar CommonAttributeGroupFacade.skinID : String\n get() = attributeStringString.get(this, \"SkinID\")\n set(newValue) {attributeStringString.set(this, \"SkinID\", newValue)}\n\nvar CommonAttributeGroupFacade.visible : Boolean\n get() = attributeBooleanBoolean.get(this, \"Visible\")\n set(newValue) {attributeBooleanBoolean.set(this, \"Visible\", newValue)}\n\nvar CommonAttributeGroupFacade.accessKey : String\n get() = attributeStringString.get(this, \"accesskey\")\n set(newValue) {attributeStringString.set(this, \"accesskey\", newValue)}\n\nvar CommonAttributeGroupFacade.classes : Set\n get() = attributeSetStringStringSet.get(this, \"class\")\n set(newValue) {attributeSetStringStringSet.set(this, \"class\", newValue)}\n\nvar CommonAttributeGroupFacade.contentEditable : Boolean\n get() = attributeBooleanBoolean.get(this, \"contenteditable\")\n set(newValue) {attributeBooleanBoolean.set(this, \"contenteditable\", newValue)}\n\nvar CommonAttributeGroupFacade.contextMenu : String\n get() = attributeStringString.get(this, \"contextmenu\")\n set(newValue) {attributeStringString.set(this, \"contextmenu\", newValue)}\n\nvar CommonAttributeGroupFacade.dataFolderName : String\n get() = attributeStringString.get(this, \"data-FolderName\")\n set(newValue) {attributeStringString.set(this, \"data-FolderName\", newValue)}\n\nvar CommonAttributeGroupFacade.dataMsgId : String\n get() = attributeStringString.get(this, \"data-MsgId\")\n set(newValue) {attributeStringString.set(this, \"data-MsgId\", newValue)}\n\nvar CommonAttributeGroupFacade.dir : Dir\n get() = attributeDirEnumDirValues.get(this, \"dir\")\n set(newValue) {attributeDirEnumDirValues.set(this, \"dir\", newValue)}\n\nvar CommonAttributeGroupFacade.draggable : Draggable\n get() = attributeDraggableEnumDraggableValues.get(this, \"draggable\")\n set(newValue) {attributeDraggableEnumDraggableValues.set(this, \"draggable\", newValue)}\n\nvar CommonAttributeGroupFacade.hidden : Boolean\n get() = attributeBooleanTicker.get(this, \"hidden\")\n set(newValue) {attributeBooleanTicker.set(this, \"hidden\", newValue)}\n\nvar CommonAttributeGroupFacade.id : String\n get() = attributeStringString.get(this, \"id\")\n set(newValue) {attributeStringString.set(this, \"id\", newValue)}\n\nvar CommonAttributeGroupFacade.itemProp : String\n get() = attributeStringString.get(this, \"itemprop\")\n set(newValue) {attributeStringString.set(this, \"itemprop\", newValue)}\n\nvar CommonAttributeGroupFacade.lang : String\n get() = attributeStringString.get(this, \"lang\")\n set(newValue) {attributeStringString.set(this, \"lang\", newValue)}\n\nvar CommonAttributeGroupFacade.onAbort : String\n get() = attributeStringString.get(this, \"onabort\")\n set(newValue) {attributeStringString.set(this, \"onabort\", newValue)}\n\nvar CommonAttributeGroupFacade.onBlur : String\n get() = attributeStringString.get(this, \"onblur\")\n set(newValue) {attributeStringString.set(this, \"onblur\", newValue)}\n\nvar CommonAttributeGroupFacade.onCanPlay : String\n get() = attributeStringString.get(this, \"oncanplay\")\n set(newValue) {attributeStringString.set(this, \"oncanplay\", newValue)}\n\nvar CommonAttributeGroupFacade.onCanPlayThrough : String\n get() = attributeStringString.get(this, \"oncanplaythrough\")\n set(newValue) {attributeStringString.set(this, \"oncanplaythrough\", newValue)}\n\nvar CommonAttributeGroupFacade.onChange : String\n get() = attributeStringString.get(this, \"onchange\")\n set(newValue) {attributeStringString.set(this, \"onchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onClick : String\n get() = attributeStringString.get(this, \"onclick\")\n set(newValue) {attributeStringString.set(this, \"onclick\", newValue)}\n\nvar CommonAttributeGroupFacade.onContextMenu : String\n get() = attributeStringString.get(this, \"oncontextmenu\")\n set(newValue) {attributeStringString.set(this, \"oncontextmenu\", newValue)}\n\nvar CommonAttributeGroupFacade.onDoubleClick : String\n get() = attributeStringString.get(this, \"ondblclick\")\n set(newValue) {attributeStringString.set(this, \"ondblclick\", newValue)}\n\nvar CommonAttributeGroupFacade.onDrag : String\n get() = attributeStringString.get(this, \"ondrag\")\n set(newValue) {attributeStringString.set(this, \"ondrag\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragEnd : String\n get() = attributeStringString.get(this, \"ondragend\")\n set(newValue) {attributeStringString.set(this, \"ondragend\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragEnter : String\n get() = attributeStringString.get(this, \"ondragenter\")\n set(newValue) {attributeStringString.set(this, \"ondragenter\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragLeave : String\n get() = attributeStringString.get(this, \"ondragleave\")\n set(newValue) {attributeStringString.set(this, \"ondragleave\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragOver : String\n get() = attributeStringString.get(this, \"ondragover\")\n set(newValue) {attributeStringString.set(this, \"ondragover\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragStart : String\n get() = attributeStringString.get(this, \"ondragstart\")\n set(newValue) {attributeStringString.set(this, \"ondragstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onDrop : String\n get() = attributeStringString.get(this, \"ondrop\")\n set(newValue) {attributeStringString.set(this, \"ondrop\", newValue)}\n\nvar CommonAttributeGroupFacade.onDurationChange : String\n get() = attributeStringString.get(this, \"ondurationchange\")\n set(newValue) {attributeStringString.set(this, \"ondurationchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onEmptied : String\n get() = attributeStringString.get(this, \"onemptied\")\n set(newValue) {attributeStringString.set(this, \"onemptied\", newValue)}\n\nvar CommonAttributeGroupFacade.onEnded : String\n get() = attributeStringString.get(this, \"onended\")\n set(newValue) {attributeStringString.set(this, \"onended\", newValue)}\n\nvar CommonAttributeGroupFacade.onError : String\n get() = attributeStringString.get(this, \"onerror\")\n set(newValue) {attributeStringString.set(this, \"onerror\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocus : String\n get() = attributeStringString.get(this, \"onfocus\")\n set(newValue) {attributeStringString.set(this, \"onfocus\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusIn : String\n get() = attributeStringString.get(this, \"onfocusin\")\n set(newValue) {attributeStringString.set(this, \"onfocusin\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusOut : String\n get() = attributeStringString.get(this, \"onfocusout\")\n set(newValue) {attributeStringString.set(this, \"onfocusout\", newValue)}\n\nvar CommonAttributeGroupFacade.onFormChange : String\n get() = attributeStringString.get(this, \"onformchange\")\n set(newValue) {attributeStringString.set(this, \"onformchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onFormInput : String\n get() = attributeStringString.get(this, \"onforminput\")\n set(newValue) {attributeStringString.set(this, \"onforminput\", newValue)}\n\nvar CommonAttributeGroupFacade.onInput : String\n get() = attributeStringString.get(this, \"oninput\")\n set(newValue) {attributeStringString.set(this, \"oninput\", newValue)}\n\nvar CommonAttributeGroupFacade.onInvalid : String\n get() = attributeStringString.get(this, \"oninvalid\")\n set(newValue) {attributeStringString.set(this, \"oninvalid\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyDown : String\n get() = attributeStringString.get(this, \"onkeydown\")\n set(newValue) {attributeStringString.set(this, \"onkeydown\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyPress : String\n get() = attributeStringString.get(this, \"onkeypress\")\n set(newValue) {attributeStringString.set(this, \"onkeypress\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyUp : String\n get() = attributeStringString.get(this, \"onkeyup\")\n set(newValue) {attributeStringString.set(this, \"onkeyup\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoad : String\n get() = attributeStringString.get(this, \"onload\")\n set(newValue) {attributeStringString.set(this, \"onload\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadedData : String\n get() = attributeStringString.get(this, \"onloadeddata\")\n set(newValue) {attributeStringString.set(this, \"onloadeddata\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadedMetaData : String\n get() = attributeStringString.get(this, \"onloadedmetadata\")\n set(newValue) {attributeStringString.set(this, \"onloadedmetadata\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadStart : String\n get() = attributeStringString.get(this, \"onloadstart\")\n set(newValue) {attributeStringString.set(this, \"onloadstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseDown : String\n get() = attributeStringString.get(this, \"onmousedown\")\n set(newValue) {attributeStringString.set(this, \"onmousedown\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseMove : String\n get() = attributeStringString.get(this, \"onmousemove\")\n set(newValue) {attributeStringString.set(this, \"onmousemove\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseOut : String\n get() = attributeStringString.get(this, \"onmouseout\")\n set(newValue) {attributeStringString.set(this, \"onmouseout\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseOver : String\n get() = attributeStringString.get(this, \"onmouseover\")\n set(newValue) {attributeStringString.set(this, \"onmouseover\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseUp : String\n get() = attributeStringString.get(this, \"onmouseup\")\n set(newValue) {attributeStringString.set(this, \"onmouseup\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseWheel : String\n get() = attributeStringString.get(this, \"onmousewheel\")\n set(newValue) {attributeStringString.set(this, \"onmousewheel\", newValue)}\n\nvar CommonAttributeGroupFacade.onPause : String\n get() = attributeStringString.get(this, \"onpause\")\n set(newValue) {attributeStringString.set(this, \"onpause\", newValue)}\n\nvar CommonAttributeGroupFacade.onPlay : String\n get() = attributeStringString.get(this, \"onplay\")\n set(newValue) {attributeStringString.set(this, \"onplay\", newValue)}\n\nvar CommonAttributeGroupFacade.onPlaying : String\n get() = attributeStringString.get(this, \"onplaying\")\n set(newValue) {attributeStringString.set(this, \"onplaying\", newValue)}\n\nvar CommonAttributeGroupFacade.onProgress : String\n get() = attributeStringString.get(this, \"onprogress\")\n set(newValue) {attributeStringString.set(this, \"onprogress\", newValue)}\n\nvar CommonAttributeGroupFacade.onRateChange : String\n get() = attributeStringString.get(this, \"onratechange\")\n set(newValue) {attributeStringString.set(this, \"onratechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onReadyStateChange : String\n get() = attributeStringString.get(this, \"onreadystatechange\")\n set(newValue) {attributeStringString.set(this, \"onreadystatechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onScroll : String\n get() = attributeStringString.get(this, \"onscroll\")\n set(newValue) {attributeStringString.set(this, \"onscroll\", newValue)}\n\nvar CommonAttributeGroupFacade.onSearch : String\n get() = attributeStringString.get(this, \"onsearch\")\n set(newValue) {attributeStringString.set(this, \"onsearch\", newValue)}\n\nvar CommonAttributeGroupFacade.onSeeked : String\n get() = attributeStringString.get(this, \"onseeked\")\n set(newValue) {attributeStringString.set(this, \"onseeked\", newValue)}\n\nvar CommonAttributeGroupFacade.onSeeking : String\n get() = attributeStringString.get(this, \"onseeking\")\n set(newValue) {attributeStringString.set(this, \"onseeking\", newValue)}\n\nvar CommonAttributeGroupFacade.onSelect : String\n get() = attributeStringString.get(this, \"onselect\")\n set(newValue) {attributeStringString.set(this, \"onselect\", newValue)}\n\nvar CommonAttributeGroupFacade.onShow : String\n get() = attributeStringString.get(this, \"onshow\")\n set(newValue) {attributeStringString.set(this, \"onshow\", newValue)}\n\nvar CommonAttributeGroupFacade.onStalled : String\n get() = attributeStringString.get(this, \"onstalled\")\n set(newValue) {attributeStringString.set(this, \"onstalled\", newValue)}\n\nvar CommonAttributeGroupFacade.onSubmit : String\n get() = attributeStringString.get(this, \"onsubmit\")\n set(newValue) {attributeStringString.set(this, \"onsubmit\", newValue)}\n\nvar CommonAttributeGroupFacade.onSuspend : String\n get() = attributeStringString.get(this, \"onsuspend\")\n set(newValue) {attributeStringString.set(this, \"onsuspend\", newValue)}\n\nvar CommonAttributeGroupFacade.onTimeUpdate : String\n get() = attributeStringString.get(this, \"ontimeupdate\")\n set(newValue) {attributeStringString.set(this, \"ontimeupdate\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchCancel : String\n get() = attributeStringString.get(this, \"ontouchcancel\")\n set(newValue) {attributeStringString.set(this, \"ontouchcancel\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchEnd : String\n get() = attributeStringString.get(this, \"ontouchend\")\n set(newValue) {attributeStringString.set(this, \"ontouchend\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchMove : String\n get() = attributeStringString.get(this, \"ontouchmove\")\n set(newValue) {attributeStringString.set(this, \"ontouchmove\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchStart : String\n get() = attributeStringString.get(this, \"ontouchstart\")\n set(newValue) {attributeStringString.set(this, \"ontouchstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onVolumeChange : String\n get() = attributeStringString.get(this, \"onvolumechange\")\n set(newValue) {attributeStringString.set(this, \"onvolumechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onWaiting : String\n get() = attributeStringString.get(this, \"onwaiting\")\n set(newValue) {attributeStringString.set(this, \"onwaiting\", newValue)}\n\nvar CommonAttributeGroupFacade.onWheel : String\n get() = attributeStringString.get(this, \"onwheel\")\n set(newValue) {attributeStringString.set(this, \"onwheel\", newValue)}\n\nvar CommonAttributeGroupFacade.role : String\n get() = attributeStringString.get(this, \"role\")\n set(newValue) {attributeStringString.set(this, \"role\", newValue)}\n\nvar CommonAttributeGroupFacade.runAt : RunAt\n get() = attributeRunAtEnumRunAtValues.get(this, \"runat\")\n set(newValue) {attributeRunAtEnumRunAtValues.set(this, \"runat\", newValue)}\n\nvar CommonAttributeGroupFacade.spellCheck : Boolean\n get() = attributeBooleanBoolean.get(this, \"spellcheck\")\n set(newValue) {attributeBooleanBoolean.set(this, \"spellcheck\", newValue)}\n\nvar CommonAttributeGroupFacade.style : String\n get() = attributeStringString.get(this, \"style\")\n set(newValue) {attributeStringString.set(this, \"style\", newValue)}\n\nvar CommonAttributeGroupFacade.subject : String\n get() = attributeStringString.get(this, \"subject\")\n set(newValue) {attributeStringString.set(this, \"subject\", newValue)}\n\nvar CommonAttributeGroupFacade.tabIndex : String\n get() = attributeStringString.get(this, \"tabIndex\")\n set(newValue) {attributeStringString.set(this, \"tabIndex\", newValue)}\n\nvar CommonAttributeGroupFacade.title : String\n get() = attributeStringString.get(this, \"title\")\n set(newValue) {attributeStringString.set(this, \"title\", newValue)}\n\n\ninterface FormServerAttributeGroupFacade : Tag {\n}\nvar FormServerAttributeGroupFacade.defaultButton : String\n get() = attributeStringString.get(this, \"DefaultButton\")\n set(newValue) {attributeStringString.set(this, \"DefaultButton\", newValue)}\n\nvar FormServerAttributeGroupFacade.defaultFocus : String\n get() = attributeStringString.get(this, \"DefaultFocus\")\n set(newValue) {attributeStringString.set(this, \"DefaultFocus\", newValue)}\n\nvar FormServerAttributeGroupFacade.submitDisabledControls : Boolean\n get() = attributeBooleanBoolean.get(this, \"SubmitDisabledControls\")\n set(newValue) {attributeBooleanBoolean.set(this, \"SubmitDisabledControls\", newValue)}\n\n\ninterface InputServerAttributeGroupFacade : Tag {\n}\nvar InputServerAttributeGroupFacade.causesValidation : Boolean\n get() = attributeBooleanBoolean.get(this, \"CausesValidation\")\n set(newValue) {attributeBooleanBoolean.set(this, \"CausesValidation\", newValue)}\n\nvar InputServerAttributeGroupFacade.validationGroup : String\n get() = attributeStringString.get(this, \"ValidationGroup\")\n set(newValue) {attributeStringString.set(this, \"ValidationGroup\", newValue)}\n\n\ninterface SelectServerAttributeGroupFacade : Tag {\n}\nvar SelectServerAttributeGroupFacade.dataSourceID : String\n get() = attributeStringString.get(this, \"DataSourceID\")\n set(newValue) {attributeStringString.set(this, \"DataSourceID\", newValue)}\n\nvar SelectServerAttributeGroupFacade.dataTextField : String\n get() = attributeStringString.get(this, \"DataTextField\")\n set(newValue) {attributeStringString.set(this, \"DataTextField\", newValue)}\n\nvar SelectServerAttributeGroupFacade.dataValueField : String\n get() = attributeStringString.get(this, \"DataValueField\")\n set(newValue) {attributeStringString.set(this, \"DataValueField\", newValue)}\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\nenum class Entities {\n nbsp\n, lt\n, gt\n, quot\n, amp\n, apos\n, iexcl\n, cent\n, pound\n, curren\n, yen\n, brvbar\n, sect\n, uml\n, copy\n, ordf\n, laquo\n, not\n, shy\n, reg\n, macr\n, deg\n, plusmn\n, sup2\n, sup3\n, acute\n, micro\n, para\n, middot\n, cedil\n, sup1\n, ordm\n, raquo\n, frac14\n, frac12\n, frac34\n, iquest\n, Agrave\n, Aacute\n, Acirc\n, Atilde\n, Auml\n, Aring\n, AElig\n, Ccedil\n, Egrave\n, Eacute\n, Ecirc\n, Euml\n, Igrave\n, Iacute\n, Icirc\n, Iuml\n, ETH\n, Ntilde\n, Ograve\n, Oacute\n, Ocirc\n, Otilde\n, Ouml\n, times\n, Oslash\n, Ugrave\n, Uacute\n, Ucirc\n, Uuml\n, Yacute\n, THORN\n, szlig\n, agrave\n, aacute\n, acirc\n, atilde\n, auml\n, aring\n, aelig\n, ccedil\n, egrave\n, eacute\n, ecirc\n, euml\n, igrave\n, iacute\n, icirc\n, iuml\n, eth\n, ntilde\n, ograve\n, oacute\n, ocirc\n, otilde\n, ouml\n, divide\n, oslash\n, ugrave\n, uacute\n, ucirc\n, uuml\n, yacute\n, thorn\n, yuml\n;\nval text : String\n get() = \"&\" + this.toString() + \";\"\n\n}\n","package kotlinx.html\n\nimport kotlinx.html.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nenum class Dir(override val realValue : String) : AttributeEnum {\n ltr(\"ltr\"),\n rtl(\"rtl\")\n}\n\ninternal val dirValues : Map = Dir.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class Draggable(override val realValue : String) : AttributeEnum {\n htmlTrue(\"true\"),\n htmlFalse(\"false\"),\n auto(\"auto\")\n}\n\ninternal val draggableValues : Map = Draggable.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class RunAt(override val realValue : String) : AttributeEnum {\n server(\"server\")\n}\n\ninternal val runAtValues : Map = RunAt.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject ATarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nobject ARel {\n val alternate : String = \"Alternate\"\n val appEndIx : String = \"Appendix\"\n val bookmark : String = \"Bookmark\"\n val chapter : String = \"Chapter\"\n val contentS : String = \"Contents\"\n val copyright : String = \"Copyright\"\n val glossary : String = \"Glossary\"\n val help : String = \"Help\"\n val index : String = \"Index\"\n val next : String = \"Next\"\n val prev : String = \"Prev\"\n val section : String = \"Section\"\n val start : String = \"Start\"\n val stylesheet : String = \"Stylesheet\"\n val subsection : String = \"Subsection\"\n\n val values : List = listOf(\"alternate\", \"appEndIx\", \"bookmark\", \"chapter\", \"contentS\", \"copyright\", \"glossary\", \"help\", \"index\", \"next\", \"prev\", \"section\", \"start\", \"stylesheet\", \"subsection\")\n}\n\n@Suppress(\"unused\")\nobject AType {\n val textAsp : String = \"text/asp\"\n val textAsa : String = \"text/asa\"\n val textCss : String = \"text/css\"\n val textHtml : String = \"text/html\"\n val textJavaScript : String = \"text/javascript\"\n val textPlain : String = \"text/plain\"\n val textScriptLet : String = \"text/scriptlet\"\n val textXComponent : String = \"text/x-component\"\n val textXHtmlInsertion : String = \"text/x-html-insertion\"\n val textXml : String = \"text/xml\"\n\n val values : List = listOf(\"textAsp\", \"textAsa\", \"textCss\", \"textHtml\", \"textJavaScript\", \"textPlain\", \"textScriptLet\", \"textXComponent\", \"textXHtmlInsertion\", \"textXml\")\n}\n\n@Suppress(\"unused\")\nenum class AreaShape(override val realValue : String) : AttributeEnum {\n rect(\"rect\"),\n circle(\"circle\"),\n poly(\"poly\"),\n default(\"default\")\n}\n\ninternal val areaShapeValues : Map = AreaShape.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject AreaTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nobject AreaRel {\n val alternate : String = \"Alternate\"\n val appEndIx : String = \"Appendix\"\n val bookmark : String = \"Bookmark\"\n val chapter : String = \"Chapter\"\n val contentS : String = \"Contents\"\n val copyright : String = \"Copyright\"\n val glossary : String = \"Glossary\"\n val help : String = \"Help\"\n val index : String = \"Index\"\n val next : String = \"Next\"\n val prev : String = \"Prev\"\n val section : String = \"Section\"\n val start : String = \"Start\"\n val stylesheet : String = \"Stylesheet\"\n val subsection : String = \"Subsection\"\n\n val values : List = listOf(\"alternate\", \"appEndIx\", \"bookmark\", \"chapter\", \"contentS\", \"copyright\", \"glossary\", \"help\", \"index\", \"next\", \"prev\", \"section\", \"start\", \"stylesheet\", \"subsection\")\n}\n\n@Suppress(\"unused\")\nobject BaseTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nenum class ButtonFormEncType(override val realValue : String) : AttributeEnum {\n multipartFormData(\"multipart/form-data\"),\n applicationXWwwFormUrlEncoded(\"application/x-www-form-urlencoded\"),\n textPlain(\"text/plain\")\n}\n\ninternal val buttonFormEncTypeValues : Map = ButtonFormEncType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class ButtonFormMethod(override val realValue : String) : AttributeEnum {\n get(\"get\"),\n post(\"post\"),\n @Deprecated(\"method is not allowed in browsers\") put(\"put\"),\n @Deprecated(\"method is not allowed in browsers\") delete(\"delete\"),\n @Deprecated(\"method is not allowed in browsers\") patch(\"patch\")\n}\n\ninternal val buttonFormMethodValues : Map = ButtonFormMethod.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject ButtonFormTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nenum class ButtonType(override val realValue : String) : AttributeEnum {\n button(\"button\"),\n reset(\"reset\"),\n submit(\"submit\")\n}\n\ninternal val buttonTypeValues : Map = ButtonType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class CommandType(override val realValue : String) : AttributeEnum {\n command(\"command\"),\n checkBox(\"checkbox\"),\n radio(\"radio\")\n}\n\ninternal val commandTypeValues : Map = CommandType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class FormEncType(override val realValue : String) : AttributeEnum {\n multipartFormData(\"multipart/form-data\"),\n applicationXWwwFormUrlEncoded(\"application/x-www-form-urlencoded\"),\n textPlain(\"text/plain\")\n}\n\ninternal val formEncTypeValues : Map = FormEncType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class FormMethod(override val realValue : String) : AttributeEnum {\n get(\"get\"),\n post(\"post\"),\n @Deprecated(\"method is not allowed in browsers\") put(\"put\"),\n @Deprecated(\"method is not allowed in browsers\") delete(\"delete\"),\n @Deprecated(\"method is not allowed in browsers\") patch(\"patch\")\n}\n\ninternal val formMethodValues : Map = FormMethod.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject FormTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nobject IframeName {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nenum class IframeSandbox(override val realValue : String) : AttributeEnum {\n allowSameOrigin(\"allow-same-origin\"),\n allowFormS(\"allow-forms\"),\n allowScripts(\"allow-scripts\")\n}\n\ninternal val iframeSandboxValues : Map = IframeSandbox.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class InputType(override val realValue : String) : AttributeEnum {\n button(\"button\"),\n checkBox(\"checkbox\"),\n color(\"color\"),\n date(\"date\"),\n dateTime(\"datetime\"),\n dateTimeLocal(\"datetime-local\"),\n email(\"email\"),\n file(\"file\"),\n hidden(\"hidden\"),\n image(\"image\"),\n month(\"month\"),\n number(\"number\"),\n password(\"password\"),\n radio(\"radio\"),\n range(\"range\"),\n reset(\"reset\"),\n search(\"search\"),\n submit(\"submit\"),\n text(\"text\"),\n tel(\"tel\"),\n time(\"time\"),\n url(\"url\"),\n week(\"week\")\n}\n\ninternal val inputTypeValues : Map = InputType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class InputFormEncType(override val realValue : String) : AttributeEnum {\n multipartFormData(\"multipart/form-data\"),\n applicationXWwwFormUrlEncoded(\"application/x-www-form-urlencoded\"),\n textPlain(\"text/plain\")\n}\n\ninternal val inputFormEncTypeValues : Map = InputFormEncType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class InputFormMethod(override val realValue : String) : AttributeEnum {\n get(\"get\"),\n post(\"post\"),\n @Deprecated(\"method is not allowed in browsers\") put(\"put\"),\n @Deprecated(\"method is not allowed in browsers\") delete(\"delete\"),\n @Deprecated(\"method is not allowed in browsers\") patch(\"patch\")\n}\n\ninternal val inputFormMethodValues : Map = InputFormMethod.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject InputFormTarget {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nenum class KeyGenKeyType(override val realValue : String) : AttributeEnum {\n rsa(\"rsa\")\n}\n\ninternal val keyGenKeyTypeValues : Map = KeyGenKeyType.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nobject LinkRel {\n val alternate : String = \"Alternate\"\n val appEndIx : String = \"Appendix\"\n val bookmark : String = \"Bookmark\"\n val chapter : String = \"Chapter\"\n val contentS : String = \"Contents\"\n val copyright : String = \"Copyright\"\n val glossary : String = \"Glossary\"\n val help : String = \"Help\"\n val index : String = \"Index\"\n val next : String = \"Next\"\n val prev : String = \"Prev\"\n val section : String = \"Section\"\n val start : String = \"Start\"\n val stylesheet : String = \"Stylesheet\"\n val subsection : String = \"Subsection\"\n\n val values : List = listOf(\"alternate\", \"appEndIx\", \"bookmark\", \"chapter\", \"contentS\", \"copyright\", \"glossary\", \"help\", \"index\", \"next\", \"prev\", \"section\", \"start\", \"stylesheet\", \"subsection\")\n}\n\n@Suppress(\"unused\")\nobject LinkMedia {\n val screen : String = \"screen\"\n val print : String = \"print\"\n val tty : String = \"tty\"\n val tv : String = \"tv\"\n val projection : String = \"projection\"\n val handheld : String = \"handheld\"\n val braille : String = \"braille\"\n val aural : String = \"aural\"\n val all : String = \"all\"\n\n val values : List = listOf(\"screen\", \"print\", \"tty\", \"tv\", \"projection\", \"handheld\", \"braille\", \"aural\", \"all\")\n}\n\n@Suppress(\"unused\")\nobject LinkType {\n val textAsp : String = \"text/asp\"\n val textAsa : String = \"text/asa\"\n val textCss : String = \"text/css\"\n val textHtml : String = \"text/html\"\n val textJavaScript : String = \"text/javascript\"\n val textPlain : String = \"text/plain\"\n val textScriptLet : String = \"text/scriptlet\"\n val textXComponent : String = \"text/x-component\"\n val textXHtmlInsertion : String = \"text/x-html-insertion\"\n val textXml : String = \"text/xml\"\n\n val values : List = listOf(\"textAsp\", \"textAsa\", \"textCss\", \"textHtml\", \"textJavaScript\", \"textPlain\", \"textScriptLet\", \"textXComponent\", \"textXHtmlInsertion\", \"textXml\")\n}\n\n@Suppress(\"unused\")\nobject MetaHttpEquiv {\n val contentLanguage : String = \"content-language\"\n val contentType : String = \"content-type\"\n val defaultStyle : String = \"default-style\"\n val refresh : String = \"refresh\"\n\n val values : List = listOf(\"contentLanguage\", \"contentType\", \"defaultStyle\", \"refresh\")\n}\n\n@Suppress(\"unused\")\nobject ObjectName {\n val blank : String = \"_blank\"\n val parent : String = \"_parent\"\n val self : String = \"_self\"\n val top : String = \"_top\"\n\n val values : List = listOf(\"blank\", \"parent\", \"self\", \"top\")\n}\n\n@Suppress(\"unused\")\nobject ScriptType {\n val textEcmaScript : String = \"text/ecmascript\"\n val textJavaScript : String = \"text/javascript\"\n val textJavaScript10 : String = \"text/javascript1.0\"\n val textJavaScript11 : String = \"text/javascript1.1\"\n val textJavaScript12 : String = \"text/javascript1.2\"\n val textJavaScript13 : String = \"text/javascript1.3\"\n val textJavaScript14 : String = \"text/javascript1.4\"\n val textJavaScript15 : String = \"text/javascript1.5\"\n val textJScript : String = \"text/jscript\"\n val textXJavaScript : String = \"text/x-javascript\"\n val textXEcmaScript : String = \"text/x-ecmascript\"\n val textVbScript : String = \"text/vbscript\"\n\n val values : List = listOf(\"textEcmaScript\", \"textJavaScript\", \"textJavaScript10\", \"textJavaScript11\", \"textJavaScript12\", \"textJavaScript13\", \"textJavaScript14\", \"textJavaScript15\", \"textJScript\", \"textXJavaScript\", \"textXEcmaScript\", \"textVbScript\")\n}\n\n@Suppress(\"unused\")\nobject StyleType {\n val textCss : String = \"text/css\"\n\n val values : List = listOf(\"textCss\")\n}\n\n@Suppress(\"unused\")\nobject StyleMedia {\n val screen : String = \"screen\"\n val print : String = \"print\"\n val tty : String = \"tty\"\n val tv : String = \"tv\"\n val projection : String = \"projection\"\n val handheld : String = \"handheld\"\n val braille : String = \"braille\"\n val aural : String = \"aural\"\n val all : String = \"all\"\n\n val values : List = listOf(\"screen\", \"print\", \"tty\", \"tv\", \"projection\", \"handheld\", \"braille\", \"aural\", \"all\")\n}\n\n@Suppress(\"unused\")\nenum class TextAreaWrap(override val realValue : String) : AttributeEnum {\n hard(\"hard\"),\n soft(\"soft\")\n}\n\ninternal val textAreaWrapValues : Map = TextAreaWrap.values().associateBy { it.realValue }\n@Suppress(\"unused\")\nenum class ThScope(override val realValue : String) : AttributeEnum {\n col(\"col\"),\n colGroup(\"colgroup\"),\n row(\"row\"),\n rowGroup(\"rowgroup\")\n}\n\ninternal val thScopeValues : Map = ThScope.values().associateBy { it.realValue }\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\ninterface FlowContent : FlowOrMetaDataOrPhrasingContent, FlowOrHeadingContent, FlowOrMetaDataContent, FlowOrInteractiveContent, FlowOrPhrasingContent, SectioningOrFlowContent, FlowOrInteractiveOrPhrasingContent, Tag {\n}\n\ninterface HeadingContent : FlowOrHeadingContent, Tag {\n}\n\ninterface InteractiveContent : FlowOrInteractiveContent, FlowOrInteractiveOrPhrasingContent, Tag {\n}\n\ninterface MetaDataContent : FlowOrMetaDataOrPhrasingContent, FlowOrMetaDataContent, Tag {\n}\n\ninterface PhrasingContent : FlowOrMetaDataOrPhrasingContent, FlowOrPhrasingContent, FlowOrInteractiveOrPhrasingContent, Tag {\n}\n\ninterface SectioningContent : SectioningOrFlowContent, Tag {\n}\n\n/**\n * Information on author\n */\n@HtmlTagMarker\ninline fun FlowContent.address(classes : String? = null, crossinline block : ADDRESS.() -> Unit = {}) : Unit = ADDRESS(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Long quotation\n */\n@HtmlTagMarker\ninline fun FlowContent.blockQuote(classes : String? = null, crossinline block : BLOCKQUOTE.() -> Unit = {}) : Unit = BLOCKQUOTE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Dialog box or window\n */\n@HtmlTagMarker\ninline fun FlowContent.dialog(classes : String? = null, crossinline block : DIALOG.() -> Unit = {}) : Unit = DIALOG(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\ninline fun FlowContent.div(classes : String? = null, crossinline block : DIV.() -> Unit = {}) : Unit = DIV(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Definition list\n */\n@HtmlTagMarker\ninline fun FlowContent.dl(classes : String? = null, crossinline block : DL.() -> Unit = {}) : Unit = DL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Form control group\n */\n@HtmlTagMarker\ninline fun FlowContent.fieldSet(classes : String? = null, crossinline block : FIELDSET.() -> Unit = {}) : Unit = FIELDSET(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Figure with optional caption\n */\n@HtmlTagMarker\ninline fun FlowContent.figure(classes : String? = null, crossinline block : FIGURE.() -> Unit = {}) : Unit = FIGURE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun FlowContent.figcaption(classes : String? = null, crossinline block : FIGCAPTION.() -> Unit = {}) : Unit = FIGCAPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Footer for a page or section\n */\n@HtmlTagMarker\ninline fun FlowContent.footer(classes : String? = null, crossinline block : FOOTER.() -> Unit = {}) : Unit = FOOTER(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Interactive form\n */\n@HtmlTagMarker\ninline fun FlowContent.form(action : String? = null, encType : FormEncType? = null, method : FormMethod? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", method?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowContent.getForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.get.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun FlowContent.postForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.post.realValue,\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowContent.putForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.put.realValue,\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowContent.deleteForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.delete.realValue,\"class\", classes), consumer).visit(block)\n@Suppress(\"DEPRECATION\")\n@HtmlTagMarker\ninline fun FlowContent.patchForm(action : String? = null, encType : FormEncType? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : Unit = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", FormMethod.patch.realValue,\"class\", classes), consumer).visit(block)\n\n/**\n * Introductory or navigational aids for a page or section\n */\n@HtmlTagMarker\ninline fun FlowContent.header(classes : String? = null, crossinline block : HEADER.() -> Unit = {}) : Unit = HEADER(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Horizontal rule\n */\n@HtmlTagMarker\ninline fun FlowContent.hr(classes : String? = null, crossinline block : HR.() -> Unit = {}) : Unit = HR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Ordered list\n */\n@HtmlTagMarker\ninline fun FlowContent.ol(classes : String? = null, crossinline block : OL.() -> Unit = {}) : Unit = OL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Paragraph\n */\n@HtmlTagMarker\ninline fun FlowContent.p(classes : String? = null, crossinline block : P.() -> Unit = {}) : Unit = P(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Preformatted text\n */\n@HtmlTagMarker\ninline fun FlowContent.pre(classes : String? = null, crossinline block : PRE.() -> Unit = {}) : Unit = PRE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\ninline fun FlowContent.summary(classes : String? = null, crossinline block : SUMMARY.() -> Unit = {}) : Unit = SUMMARY(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * \n */\n@HtmlTagMarker\ninline fun FlowContent.table(classes : String? = null, crossinline block : TABLE.() -> Unit = {}) : Unit = TABLE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\ninline fun FlowContent.ul(classes : String? = null, crossinline block : UL.() -> Unit = {}) : Unit = UL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Document base URI\n */\n@HtmlTagMarker\ninline fun MetaDataContent.base(classes : String? = null, crossinline block : BASE.() -> Unit = {}) : Unit = BASE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Document title\n */\n@HtmlTagMarker\ninline fun MetaDataContent.title(crossinline block : TITLE.() -> Unit = {}) : Unit = TITLE(emptyMap, consumer).visit(block)\n/**\n * Document title\n */\n@HtmlTagMarker\nfun MetaDataContent.title(content : String = \"\") : Unit = TITLE(emptyMap, consumer).visit({+content})\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class A(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"a\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var href : String\n get() = attributeStringString.get(this, \"href\")\n set(newValue) {attributeStringString.set(this, \"href\", newValue)}\n\n var target : String\n get() = attributeStringString.get(this, \"target\")\n set(newValue) {attributeStringString.set(this, \"target\", newValue)}\n\n var ping : String\n get() = attributeStringString.get(this, \"ping\")\n set(newValue) {attributeStringString.set(this, \"ping\", newValue)}\n\n var rel : String\n get() = attributeStringString.get(this, \"rel\")\n set(newValue) {attributeStringString.set(this, \"rel\", newValue)}\n\n var hrefLang : String\n get() = attributeStringString.get(this, \"hreflang\")\n set(newValue) {attributeStringString.set(this, \"hreflang\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n\n}\nval A.asFlowContent : FlowContent\n get() = this\n\nval A.asInteractiveContent : InteractiveContent\n get() = this\n\nval A.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class ABBR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"abbr\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval ABBR.asFlowContent : FlowContent\n get() = this\n\nval ABBR.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class ADDRESS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"address\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class AREA(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"area\", consumer, initialAttributes, null, true, true), HtmlBlockInlineTag {\n var coords : String\n get() = attributeStringString.get(this, \"coords\")\n set(newValue) {attributeStringString.set(this, \"coords\", newValue)}\n\n var href : String\n get() = attributeStringString.get(this, \"href\")\n set(newValue) {attributeStringString.set(this, \"href\", newValue)}\n\n var hrefLang : String\n get() = attributeStringString.get(this, \"hreflang\")\n set(newValue) {attributeStringString.set(this, \"hreflang\", newValue)}\n\n var alt : String\n get() = attributeStringString.get(this, \"alt\")\n set(newValue) {attributeStringString.set(this, \"alt\", newValue)}\n\n var target : String\n get() = attributeStringString.get(this, \"target\")\n set(newValue) {attributeStringString.set(this, \"target\", newValue)}\n\n var media : String\n get() = attributeStringString.get(this, \"media\")\n set(newValue) {attributeStringString.set(this, \"media\", newValue)}\n\n var rel : String\n get() = attributeStringString.get(this, \"rel\")\n set(newValue) {attributeStringString.set(this, \"rel\", newValue)}\n\n var ping : String\n get() = attributeStringString.get(this, \"ping\")\n set(newValue) {attributeStringString.set(this, \"ping\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n\n}\nval AREA.asFlowContent : FlowContent\n get() = this\n\nval AREA.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class ARTICLE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"article\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowSectioningContent {\n\n}\nval ARTICLE.asFlowContent : FlowContent\n get() = this\n\nval ARTICLE.asSectioningContent : SectioningContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class ASIDE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"aside\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowSectioningContent {\n\n}\nval ASIDE.asFlowContent : FlowContent\n get() = this\n\nval ASIDE.asSectioningContent : SectioningContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class AUDIO(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"audio\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var autoBuffer : Boolean\n get() = attributeBooleanTicker.get(this, \"autobuffer\")\n set(newValue) {attributeBooleanTicker.set(this, \"autobuffer\", newValue)}\n\n var autoPlay : Boolean\n get() = attributeBooleanTicker.get(this, \"autoplay\")\n set(newValue) {attributeBooleanTicker.set(this, \"autoplay\", newValue)}\n\n var loop : Boolean\n get() = attributeBooleanTicker.get(this, \"loop\")\n set(newValue) {attributeBooleanTicker.set(this, \"loop\", newValue)}\n\n var controls : Boolean\n get() = attributeBooleanTicker.get(this, \"controls\")\n set(newValue) {attributeBooleanTicker.set(this, \"controls\", newValue)}\n\n\n}\n/**\n * Media source for \n */\n@HtmlTagMarker\ninline fun AUDIO.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : Unit = SOURCE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval AUDIO.asFlowContent : FlowContent\n get() = this\n\nval AUDIO.asInteractiveContent : InteractiveContent\n get() = this\n\nval AUDIO.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class B(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"b\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval B.asFlowContent : FlowContent\n get() = this\n\nval B.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class BASE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"base\", consumer, initialAttributes, null, true, true), HtmlHeadTag {\n var href : String\n get() = attributeStringString.get(this, \"href\")\n set(newValue) {attributeStringString.set(this, \"href\", newValue)}\n\n var target : String\n get() = attributeStringString.get(this, \"target\")\n set(newValue) {attributeStringString.set(this, \"target\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class BDI(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"bdi\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval BDI.asFlowContent : FlowContent\n get() = this\n\nval BDI.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class BDO(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"bdo\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval BDO.asFlowContent : FlowContent\n get() = this\n\nval BDO.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class BLOCKQUOTE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"blockquote\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var cite : String\n get() = attributeStringString.get(this, \"cite\")\n set(newValue) {attributeStringString.set(this, \"cite\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class BODY(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"body\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var onAfterprint : String\n get() = attributeStringString.get(this, \"onafterprint\")\n set(newValue) {attributeStringString.set(this, \"onafterprint\", newValue)}\n\n var onBeforeprint : String\n get() = attributeStringString.get(this, \"onbeforeprint\")\n set(newValue) {attributeStringString.set(this, \"onbeforeprint\", newValue)}\n\n var onBeforeunLoad : String\n get() = attributeStringString.get(this, \"onbeforeunload\")\n set(newValue) {attributeStringString.set(this, \"onbeforeunload\", newValue)}\n\n var onHashChange : String\n get() = attributeStringString.get(this, \"onhashchange\")\n set(newValue) {attributeStringString.set(this, \"onhashchange\", newValue)}\n\n var onMessage : String\n get() = attributeStringString.get(this, \"onmessage\")\n set(newValue) {attributeStringString.set(this, \"onmessage\", newValue)}\n\n var onOffline : String\n get() = attributeStringString.get(this, \"onoffline\")\n set(newValue) {attributeStringString.set(this, \"onoffline\", newValue)}\n\n var onOnline : String\n get() = attributeStringString.get(this, \"ononline\")\n set(newValue) {attributeStringString.set(this, \"ononline\", newValue)}\n\n var onPopstate : String\n get() = attributeStringString.get(this, \"onpopstate\")\n set(newValue) {attributeStringString.set(this, \"onpopstate\", newValue)}\n\n var onRedo : String\n get() = attributeStringString.get(this, \"onredo\")\n set(newValue) {attributeStringString.set(this, \"onredo\", newValue)}\n\n var onResize : String\n get() = attributeStringString.get(this, \"onresize\")\n set(newValue) {attributeStringString.set(this, \"onresize\", newValue)}\n\n var onStorage : String\n get() = attributeStringString.get(this, \"onstorage\")\n set(newValue) {attributeStringString.set(this, \"onstorage\", newValue)}\n\n var onUndo : String\n get() = attributeStringString.get(this, \"onundo\")\n set(newValue) {attributeStringString.set(this, \"onundo\", newValue)}\n\n var onUnLoad : String\n get() = attributeStringString.get(this, \"onunload\")\n set(newValue) {attributeStringString.set(this, \"onunload\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class BR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"br\", consumer, initialAttributes, null, true, true), HtmlBlockInlineTag {\n\n}\nval BR.asFlowContent : FlowContent\n get() = this\n\nval BR.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class BUTTON(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"button\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var formAction : String\n get() = attributeStringString.get(this, \"formaction\")\n set(newValue) {attributeStringString.set(this, \"formaction\", newValue)}\n\n var formEncType : ButtonFormEncType\n get() = attributeButtonFormEncTypeEnumButtonFormEncTypeValues.get(this, \"formenctype\")\n set(newValue) {attributeButtonFormEncTypeEnumButtonFormEncTypeValues.set(this, \"formenctype\", newValue)}\n\n var formMethod : ButtonFormMethod\n get() = attributeButtonFormMethodEnumButtonFormMethodValues.get(this, \"formmethod\")\n set(newValue) {attributeButtonFormMethodEnumButtonFormMethodValues.set(this, \"formmethod\", newValue)}\n\n var formNovalidate : Boolean\n get() = attributeBooleanTicker.get(this, \"formnovalidate\")\n set(newValue) {attributeBooleanTicker.set(this, \"formnovalidate\", newValue)}\n\n var formTarget : String\n get() = attributeStringString.get(this, \"formtarget\")\n set(newValue) {attributeStringString.set(this, \"formtarget\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n var type : ButtonType\n get() = attributeButtonTypeEnumButtonTypeValues.get(this, \"type\")\n set(newValue) {attributeButtonTypeEnumButtonTypeValues.set(this, \"type\", newValue)}\n\n\n}\nval BUTTON.asFlowContent : FlowContent\n get() = this\n\nval BUTTON.asInteractiveContent : InteractiveContent\n get() = this\n\nval BUTTON.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class CANVAS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"canvas\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n\n}\nval CANVAS.asFlowContent : FlowContent\n get() = this\n\nval CANVAS.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class CAPTION(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"caption\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class CITE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"cite\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval CITE.asFlowContent : FlowContent\n get() = this\n\nval CITE.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class CODE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"code\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval CODE.asFlowContent : FlowContent\n get() = this\n\nval CODE.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class COL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"col\", consumer, initialAttributes, null, false, true), CommonAttributeGroupFacade {\n var span : String\n get() = attributeStringString.get(this, \"span\")\n set(newValue) {attributeStringString.set(this, \"span\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class COLGROUP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"colgroup\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n var span : String\n get() = attributeStringString.get(this, \"span\")\n set(newValue) {attributeStringString.set(this, \"span\", newValue)}\n\n\n}\n/**\n * Table column\n */\n@HtmlTagMarker\ninline fun COLGROUP.col(classes : String? = null, crossinline block : COL.() -> Unit = {}) : Unit = COL(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class COMMAND(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"command\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowMetaDataPhrasingContent {\n var type : CommandType\n get() = attributeCommandTypeEnumCommandTypeValues.get(this, \"type\")\n set(newValue) {attributeCommandTypeEnumCommandTypeValues.set(this, \"type\", newValue)}\n\n var label : String\n get() = attributeStringString.get(this, \"label\")\n set(newValue) {attributeStringString.set(this, \"label\", newValue)}\n\n var icon : String\n get() = attributeStringString.get(this, \"icon\")\n set(newValue) {attributeStringString.set(this, \"icon\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var checked : Boolean\n get() = attributeBooleanTicker.get(this, \"checked\")\n set(newValue) {attributeBooleanTicker.set(this, \"checked\", newValue)}\n\n var radioGroup : String\n get() = attributeStringString.get(this, \"radiogroup\")\n set(newValue) {attributeStringString.set(this, \"radiogroup\", newValue)}\n\n\n}\nval COMMAND.asFlowContent : FlowContent\n get() = this\n\nval COMMAND.asMetaDataContent : MetaDataContent\n get() = this\n\nval COMMAND.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class EM(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"em\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval EM.asFlowContent : FlowContent\n get() = this\n\nval EM.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class EMBED(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"embed\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n\n}\nval EMBED.asFlowContent : FlowContent\n get() = this\n\nval EMBED.asInteractiveContent : InteractiveContent\n get() = this\n\nval EMBED.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class H1(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h1\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H2(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h2\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H3(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h3\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H4(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h4\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H5(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h5\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class H6(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"h6\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class HEAD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"head\", consumer, initialAttributes, null, false, false), HtmlHeadTag {\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun Entities.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") entity(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun String.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") text(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(s : String) : Unit {\n super.text(s)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(n : Number) : Unit {\n super.text(n)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun entity(e : Entities) : Unit {\n super.entity(e)\n }\n\n}\n\n@Suppress(\"unused\")\nopen class HEADER(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"header\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class HGROUP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"hgroup\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowHeadingContent {\n\n}\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h1(classes : String? = null, crossinline block : H1.() -> Unit = {}) : Unit = H1(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h2(classes : String? = null, crossinline block : H2.() -> Unit = {}) : Unit = H2(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h3(classes : String? = null, crossinline block : H3.() -> Unit = {}) : Unit = H3(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h4(classes : String? = null, crossinline block : H4.() -> Unit = {}) : Unit = H4(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h5(classes : String? = null, crossinline block : H5.() -> Unit = {}) : Unit = H5(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Heading\n */\n@HtmlTagMarker\ninline fun HGROUP.h6(classes : String? = null, crossinline block : H6.() -> Unit = {}) : Unit = H6(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval HGROUP.asFlowContent : FlowContent\n get() = this\n\nval HGROUP.asHeadingContent : HeadingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class HR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"hr\", consumer, initialAttributes, null, false, true), HtmlBlockTag {\n\n}\n\n@Suppress(\"unused\")\nopen class HTML(initialAttributes : Map, override val consumer : TagConsumer<*>, namespace : String? = null) : HTMLTag(\"html\", consumer, initialAttributes, namespace, false, false), CommonAttributeGroupFacade {\n var manifest : String\n get() = attributeStringString.get(this, \"manifest\")\n set(newValue) {attributeStringString.set(this, \"manifest\", newValue)}\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun Entities.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") entity(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun String.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") text(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(s : String) : Unit {\n super.text(s)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(n : Number) : Unit {\n super.text(n)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun entity(e : Entities) : Unit {\n super.entity(e)\n }\n\n}\n/**\n * Document body\n */\n@HtmlTagMarker\ninline fun HTML.body(classes : String? = null, crossinline block : BODY.() -> Unit = {}) : Unit = BODY(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Document head\n */\n@HtmlTagMarker\ninline fun HTML.head(crossinline block : HEAD.() -> Unit = {}) : Unit = HEAD(emptyMap, consumer).visit(block)\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document head\n */\n@HtmlTagMarker\nfun HTML.head(content : String = \"\") : Unit = HEAD(emptyMap, consumer).visit({+content})\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class I(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"i\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval I.asFlowContent : FlowContent\n get() = this\n\nval I.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class IFRAME(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"iframe\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var sandbox : IframeSandbox\n get() = attributeIframeSandboxEnumIframeSandboxValues.get(this, \"sandbox\")\n set(newValue) {attributeIframeSandboxEnumIframeSandboxValues.set(this, \"sandbox\", newValue)}\n\n var seamless : Boolean\n get() = attributeBooleanTicker.get(this, \"seamless\")\n set(newValue) {attributeBooleanTicker.set(this, \"seamless\", newValue)}\n\n\n}\nval IFRAME.asFlowContent : FlowContent\n get() = this\n\nval IFRAME.asInteractiveContent : InteractiveContent\n get() = this\n\nval IFRAME.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class IMG(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"img\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var alt : String\n get() = attributeStringString.get(this, \"alt\")\n set(newValue) {attributeStringString.set(this, \"alt\", newValue)}\n\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var usemap : String\n get() = attributeStringString.get(this, \"usemap\")\n set(newValue) {attributeStringString.set(this, \"usemap\", newValue)}\n\n var ismap : Boolean\n get() = attributeBooleanTicker.get(this, \"ismap\")\n set(newValue) {attributeBooleanTicker.set(this, \"ismap\", newValue)}\n\n\n}\nval IMG.asFlowContent : FlowContent\n get() = this\n\nval IMG.asInteractiveContent : InteractiveContent\n get() = this\n\nval IMG.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class INPUT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"input\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var type : InputType\n get() = attributeInputTypeEnumInputTypeValues.get(this, \"type\")\n set(newValue) {attributeInputTypeEnumInputTypeValues.set(this, \"type\", newValue)}\n\n var accept : String\n get() = attributeStringString.get(this, \"accept\")\n set(newValue) {attributeStringString.set(this, \"accept\", newValue)}\n\n var alt : String\n get() = attributeStringString.get(this, \"alt\")\n set(newValue) {attributeStringString.set(this, \"alt\", newValue)}\n\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var autoComplete : Boolean\n get() = attributeBooleanBooleanOnOff.get(this, \"autocomplete\")\n set(newValue) {attributeBooleanBooleanOnOff.set(this, \"autocomplete\", newValue)}\n\n var checked : Boolean\n get() = attributeBooleanTicker.get(this, \"checked\")\n set(newValue) {attributeBooleanTicker.set(this, \"checked\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var formAction : String\n get() = attributeStringString.get(this, \"formaction\")\n set(newValue) {attributeStringString.set(this, \"formaction\", newValue)}\n\n var formEncType : InputFormEncType\n get() = attributeInputFormEncTypeEnumInputFormEncTypeValues.get(this, \"formenctype\")\n set(newValue) {attributeInputFormEncTypeEnumInputFormEncTypeValues.set(this, \"formenctype\", newValue)}\n\n var formMethod : InputFormMethod\n get() = attributeInputFormMethodEnumInputFormMethodValues.get(this, \"formmethod\")\n set(newValue) {attributeInputFormMethodEnumInputFormMethodValues.set(this, \"formmethod\", newValue)}\n\n var formNovalidate : Boolean\n get() = attributeBooleanTicker.get(this, \"formnovalidate\")\n set(newValue) {attributeBooleanTicker.set(this, \"formnovalidate\", newValue)}\n\n var formTarget : String\n get() = attributeStringString.get(this, \"formtarget\")\n set(newValue) {attributeStringString.set(this, \"formtarget\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var list : String\n get() = attributeStringString.get(this, \"list\")\n set(newValue) {attributeStringString.set(this, \"list\", newValue)}\n\n var max : String\n get() = attributeStringString.get(this, \"max\")\n set(newValue) {attributeStringString.set(this, \"max\", newValue)}\n\n var maxLength : String\n get() = attributeStringString.get(this, \"maxlength\")\n set(newValue) {attributeStringString.set(this, \"maxlength\", newValue)}\n\n var minLength : String\n get() = attributeStringString.get(this, \"minlength\")\n set(newValue) {attributeStringString.set(this, \"minlength\", newValue)}\n\n var min : String\n get() = attributeStringString.get(this, \"min\")\n set(newValue) {attributeStringString.set(this, \"min\", newValue)}\n\n var multiple : Boolean\n get() = attributeBooleanTicker.get(this, \"multiple\")\n set(newValue) {attributeBooleanTicker.set(this, \"multiple\", newValue)}\n\n var pattern : String\n get() = attributeStringString.get(this, \"pattern\")\n set(newValue) {attributeStringString.set(this, \"pattern\", newValue)}\n\n var placeholder : String\n get() = attributeStringString.get(this, \"placeholder\")\n set(newValue) {attributeStringString.set(this, \"placeholder\", newValue)}\n\n var readonly : Boolean\n get() = attributeBooleanTicker.get(this, \"readonly\")\n set(newValue) {attributeBooleanTicker.set(this, \"readonly\", newValue)}\n\n var required : Boolean\n get() = attributeBooleanTicker.get(this, \"required\")\n set(newValue) {attributeBooleanTicker.set(this, \"required\", newValue)}\n\n var size : String\n get() = attributeStringString.get(this, \"size\")\n set(newValue) {attributeStringString.set(this, \"size\", newValue)}\n\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var step : String\n get() = attributeStringString.get(this, \"step\")\n set(newValue) {attributeStringString.set(this, \"step\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var files : String\n get() = attributeStringString.get(this, \"files\")\n set(newValue) {attributeStringString.set(this, \"files\", newValue)}\n\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\nval INPUT.asFlowContent : FlowContent\n get() = this\n\nval INPUT.asInteractiveContent : InteractiveContent\n get() = this\n\nval INPUT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class INS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"ins\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n var cite : String\n get() = attributeStringString.get(this, \"cite\")\n set(newValue) {attributeStringString.set(this, \"cite\", newValue)}\n\n var dateTime : String\n get() = attributeStringString.get(this, \"datetime\")\n set(newValue) {attributeStringString.set(this, \"datetime\", newValue)}\n\n\n}\nval INS.asFlowContent : FlowContent\n get() = this\n\nval INS.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class KBD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"kbd\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval KBD.asFlowContent : FlowContent\n get() = this\n\nval KBD.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class KEYGEN(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"keygen\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var challenge : String\n get() = attributeStringString.get(this, \"challenge\")\n set(newValue) {attributeStringString.set(this, \"challenge\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var keyType : KeyGenKeyType\n get() = attributeKeyGenKeyTypeEnumKeyGenKeyTypeValues.get(this, \"keytype\")\n set(newValue) {attributeKeyGenKeyTypeEnumKeyGenKeyTypeValues.set(this, \"keytype\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\nval KEYGEN.asFlowContent : FlowContent\n get() = this\n\nval KEYGEN.asInteractiveContent : InteractiveContent\n get() = this\n\nval KEYGEN.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class LABEL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"label\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var htmlFor : String\n get() = attributeStringString.get(this, \"for\")\n set(newValue) {attributeStringString.set(this, \"for\", newValue)}\n\n\n}\nval LABEL.asFlowContent : FlowContent\n get() = this\n\nval LABEL.asInteractiveContent : InteractiveContent\n get() = this\n\nval LABEL.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class LEGEND(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"legend\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval LEGEND.asFlowContent : FlowContent\n get() = this\n\nval LEGEND.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class LI(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"li\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class LINK(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"link\", consumer, initialAttributes, null, false, true), CommonAttributeGroupFacadeFlowMetaDataPhrasingContent {\n var href : String\n get() = attributeStringString.get(this, \"href\")\n set(newValue) {attributeStringString.set(this, \"href\", newValue)}\n\n var hrefLang : String\n get() = attributeStringString.get(this, \"hreflang\")\n set(newValue) {attributeStringString.set(this, \"hreflang\", newValue)}\n\n var rel : String\n get() = attributeStringString.get(this, \"rel\")\n set(newValue) {attributeStringString.set(this, \"rel\", newValue)}\n\n var media : String\n get() = attributeStringString.get(this, \"media\")\n set(newValue) {attributeStringString.set(this, \"media\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var sizes : String\n get() = attributeStringString.get(this, \"sizes\")\n set(newValue) {attributeStringString.set(this, \"sizes\", newValue)}\n\n var integrity : String\n get() = attributeStringString.get(this, \"integrity\")\n set(newValue) {attributeStringString.set(this, \"integrity\", newValue)}\n\n\n}\nval LINK.asFlowContent : FlowContent\n get() = this\n\nval LINK.asMetaDataContent : MetaDataContent\n get() = this\n\nval LINK.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class MAIN(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"main\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowPhrasingSectioningContent {\n\n}\n\n@Suppress(\"unused\")\nopen class MAP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"map\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\nval MAP.asFlowContent : FlowContent\n get() = this\n\nval MAP.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class MARK(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"mark\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval MARK.asFlowContent : FlowContent\n get() = this\n\nval MARK.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class MATH(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"math\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n\n}\nval MATH.asFlowContent : FlowContent\n get() = this\n\nval MATH.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class MATHML(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"mathml\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n\n@Suppress(\"unused\")\nopen class META(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"meta\", consumer, initialAttributes, null, false, true), CommonAttributeGroupFacadeFlowMetaDataPhrasingContent {\n var httpEquiv : String\n get() = attributeStringString.get(this, \"http-equiv\")\n set(newValue) {attributeStringString.set(this, \"http-equiv\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var content : String\n get() = attributeStringString.get(this, \"content\")\n set(newValue) {attributeStringString.set(this, \"content\", newValue)}\n\n var charset : String\n get() = attributeStringString.get(this, \"charset\")\n set(newValue) {attributeStringString.set(this, \"charset\", newValue)}\n\n\n}\nval META.asFlowContent : FlowContent\n get() = this\n\nval META.asMetaDataContent : MetaDataContent\n get() = this\n\nval META.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class METER(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"meter\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n var min : String\n get() = attributeStringString.get(this, \"min\")\n set(newValue) {attributeStringString.set(this, \"min\", newValue)}\n\n var max : String\n get() = attributeStringString.get(this, \"max\")\n set(newValue) {attributeStringString.set(this, \"max\", newValue)}\n\n var low : String\n get() = attributeStringString.get(this, \"low\")\n set(newValue) {attributeStringString.set(this, \"low\", newValue)}\n\n var high : String\n get() = attributeStringString.get(this, \"high\")\n set(newValue) {attributeStringString.set(this, \"high\", newValue)}\n\n var optimum : String\n get() = attributeStringString.get(this, \"optimum\")\n set(newValue) {attributeStringString.set(this, \"optimum\", newValue)}\n\n\n}\nval METER.asFlowContent : FlowContent\n get() = this\n\nval METER.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class NAV(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"nav\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowSectioningContent {\n\n}\nval NAV.asFlowContent : FlowContent\n get() = this\n\nval NAV.asSectioningContent : SectioningContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class NOSCRIPT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"noscript\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowMetaDataPhrasingContent {\n\n}\nval NOSCRIPT.asFlowContent : FlowContent\n get() = this\n\nval NOSCRIPT.asMetaDataContent : MetaDataContent\n get() = this\n\nval NOSCRIPT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class OBJECT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"object\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var data : String\n get() = attributeStringString.get(this, \"data\")\n set(newValue) {attributeStringString.set(this, \"data\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var usemap : String\n get() = attributeStringString.get(this, \"usemap\")\n set(newValue) {attributeStringString.set(this, \"usemap\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var classId : String\n get() = attributeStringString.get(this, \"classid\")\n set(newValue) {attributeStringString.set(this, \"classid\", newValue)}\n\n\n}\n/**\n * Named property value\n */\n@HtmlTagMarker\ninline fun OBJECT.param(name : String? = null, value : String? = null, crossinline block : PARAM.() -> Unit = {}) : Unit = PARAM(attributesMapOf(\"name\", name,\"value\", value), consumer).visit(block)\n\nval OBJECT.asFlowContent : FlowContent\n get() = this\n\nval OBJECT.asInteractiveContent : InteractiveContent\n get() = this\n\nval OBJECT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class OL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"ol\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var start : String\n get() = attributeStringString.get(this, \"start\")\n set(newValue) {attributeStringString.set(this, \"start\", newValue)}\n\n var reversed : Boolean\n get() = attributeBooleanTicker.get(this, \"reversed\")\n set(newValue) {attributeBooleanTicker.set(this, \"reversed\", newValue)}\n\n\n}\n/**\n * List item\n */\n@HtmlTagMarker\ninline fun OL.li(classes : String? = null, crossinline block : LI.() -> Unit = {}) : Unit = LI(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class OPTGROUP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"optgroup\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacade {\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var label : String\n get() = attributeStringString.get(this, \"label\")\n set(newValue) {attributeStringString.set(this, \"label\", newValue)}\n\n\n}\n/**\n * Selectable choice\n */\n@HtmlTagMarker\ninline fun OPTGROUP.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n/**\n * Selectable choice\n */\n@HtmlTagMarker\nfun OPTGROUP.option(classes : String? = null, content : String = \"\") : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\n\n@Suppress(\"unused\")\nopen class OPTION(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"option\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacade {\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var selected : Boolean\n get() = attributeBooleanTicker.get(this, \"selected\")\n set(newValue) {attributeBooleanTicker.set(this, \"selected\", newValue)}\n\n var label : String\n get() = attributeStringString.get(this, \"label\")\n set(newValue) {attributeStringString.set(this, \"label\", newValue)}\n\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class OUTPUT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"output\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var htmlFor : String\n get() = attributeStringString.get(this, \"for\")\n set(newValue) {attributeStringString.set(this, \"for\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n\n}\nval OUTPUT.asFlowContent : FlowContent\n get() = this\n\nval OUTPUT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class P(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"p\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n\n}\nval P.asFlowContent : FlowContent\n get() = this\n\nval P.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class PARAM(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"param\", consumer, initialAttributes, null, true, true) {\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class PICTURE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"picture\", consumer, initialAttributes, null, false, false), FlowInteractivePhrasingContent {\n\n}\n/**\n * Media source for \n */\n@HtmlTagMarker\ninline fun PICTURE.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : Unit = SOURCE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Embedded image\n */\n@HtmlTagMarker\ninline fun PICTURE.img(alt : String? = null, src : String? = null, classes : String? = null, crossinline block : IMG.() -> Unit = {}) : Unit = IMG(attributesMapOf(\"alt\", alt,\"src\", src,\"class\", classes), consumer).visit(block)\n\nval PICTURE.asFlowContent : FlowContent\n get() = this\n\nval PICTURE.asInteractiveContent : InteractiveContent\n get() = this\n\nval PICTURE.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class PRE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"pre\", consumer, initialAttributes, null, false, false), HtmlBlockInlineTag {\n\n}\nval PRE.asFlowContent : FlowContent\n get() = this\n\nval PRE.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class PROGRESS(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"progress\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var value : String\n get() = attributeStringString.get(this, \"value\")\n set(newValue) {attributeStringString.set(this, \"value\", newValue)}\n\n var max : String\n get() = attributeStringString.get(this, \"max\")\n set(newValue) {attributeStringString.set(this, \"max\", newValue)}\n\n\n}\nval PROGRESS.asFlowContent : FlowContent\n get() = this\n\nval PROGRESS.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class Q(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"q\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var cite : String\n get() = attributeStringString.get(this, \"cite\")\n set(newValue) {attributeStringString.set(this, \"cite\", newValue)}\n\n\n}\nval Q.asFlowContent : FlowContent\n get() = this\n\nval Q.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class RP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"rp\", consumer, initialAttributes, null, true, false), HtmlInlineTag {\n\n}\n\n@Suppress(\"unused\")\nopen class RT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"rt\", consumer, initialAttributes, null, true, false), HtmlInlineTag {\n\n}\n\n@Suppress(\"unused\")\nopen class RUBY(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"ruby\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\n/**\n * Ruby annotation text\n */\n@HtmlTagMarker\ninline fun RUBY.rt(classes : String? = null, crossinline block : RT.() -> Unit = {}) : Unit = RT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Parenthesis for ruby annotation text\n */\n@HtmlTagMarker\ninline fun RUBY.rp(classes : String? = null, crossinline block : RP.() -> Unit = {}) : Unit = RP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval RUBY.asFlowContent : FlowContent\n get() = this\n\nval RUBY.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class SAMP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"samp\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SAMP.asFlowContent : FlowContent\n get() = this\n\nval SAMP.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SCRIPT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"script\", consumer, initialAttributes, null, false, false), FlowMetaDataPhrasingContent {\n var charset : String\n get() = attributeStringString.get(this, \"charset\")\n set(newValue) {attributeStringString.set(this, \"charset\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var defer : Boolean\n get() = attributeBooleanTicker.get(this, \"defer\")\n set(newValue) {attributeBooleanTicker.set(this, \"defer\", newValue)}\n\n var async : Boolean\n get() = attributeBooleanTicker.get(this, \"async\")\n set(newValue) {attributeBooleanTicker.set(this, \"async\", newValue)}\n\n var nonce : String\n get() = attributeStringString.get(this, \"nonce\")\n set(newValue) {attributeStringString.set(this, \"nonce\", newValue)}\n\n var integrity : String\n get() = attributeStringString.get(this, \"integrity\")\n set(newValue) {attributeStringString.set(this, \"integrity\", newValue)}\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun Entities.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") entity(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun String.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") text(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(s : String) : Unit {\n super.text(s)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(n : Number) : Unit {\n super.text(n)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun entity(e : Entities) : Unit {\n super.entity(e)\n }\n\n}\nval SCRIPT.asFlowContent : FlowContent\n get() = this\n\nval SCRIPT.asMetaDataContent : MetaDataContent\n get() = this\n\nval SCRIPT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SECTION(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"section\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowSectioningContent {\n\n}\nval SECTION.asFlowContent : FlowContent\n get() = this\n\nval SECTION.asSectioningContent : SectioningContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SELECT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"select\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var multiple : Boolean\n get() = attributeBooleanTicker.get(this, \"multiple\")\n set(newValue) {attributeBooleanTicker.set(this, \"multiple\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var size : String\n get() = attributeStringString.get(this, \"size\")\n set(newValue) {attributeStringString.set(this, \"size\", newValue)}\n\n var required : Boolean\n get() = attributeBooleanTicker.get(this, \"required\")\n set(newValue) {attributeBooleanTicker.set(this, \"required\", newValue)}\n\n\n}\n/**\n * Selectable choice\n */\n@HtmlTagMarker\ninline fun SELECT.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n/**\n * Selectable choice\n */\n@HtmlTagMarker\nfun SELECT.option(classes : String? = null, content : String = \"\") : Unit = OPTION(attributesMapOf(\"class\", classes), consumer).visit({+content})\n\n/**\n * Option group\n */\n@HtmlTagMarker\ninline fun SELECT.optGroup(label : String? = null, classes : String? = null, crossinline block : OPTGROUP.() -> Unit = {}) : Unit = OPTGROUP(attributesMapOf(\"label\", label,\"class\", classes), consumer).visit(block)\n\nval SELECT.asFlowContent : FlowContent\n get() = this\n\nval SELECT.asInteractiveContent : InteractiveContent\n get() = this\n\nval SELECT.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SMALL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"small\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SMALL.asFlowContent : FlowContent\n get() = this\n\nval SMALL.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SOURCE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"source\", consumer, initialAttributes, null, true, true), CommonAttributeGroupFacade {\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var media : String\n get() = attributeStringString.get(this, \"media\")\n set(newValue) {attributeStringString.set(this, \"media\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class SPAN(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"span\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SPAN.asFlowContent : FlowContent\n get() = this\n\nval SPAN.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class STRONG(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"strong\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval STRONG.asFlowContent : FlowContent\n get() = this\n\nval STRONG.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class STYLE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"style\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowMetaDataContent {\n var type : String\n get() = attributeStringString.get(this, \"type\")\n set(newValue) {attributeStringString.set(this, \"type\", newValue)}\n\n var media : String\n get() = attributeStringString.get(this, \"media\")\n set(newValue) {attributeStringString.set(this, \"media\", newValue)}\n\n var scoped : Boolean\n get() = attributeBooleanTicker.get(this, \"scoped\")\n set(newValue) {attributeBooleanTicker.set(this, \"scoped\", newValue)}\n\n var nonce : String\n get() = attributeStringString.get(this, \"nonce\")\n set(newValue) {attributeStringString.set(this, \"nonce\", newValue)}\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun Entities.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") entity(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override operator fun String.unaryPlus() : Unit {\n @Suppress(\"DEPRECATION\") text(this)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(s : String) : Unit {\n super.text(s)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun text(n : Number) : Unit {\n super.text(n)\n }\n\n @Deprecated(\"This tag most likely doesn't support text content or requires unsafe content (try unsafe {}\")\n override fun entity(e : Entities) : Unit {\n super.entity(e)\n }\n\n}\nval STYLE.asFlowContent : FlowContent\n get() = this\n\nval STYLE.asMetaDataContent : MetaDataContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SUB(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"sub\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SUB.asFlowContent : FlowContent\n get() = this\n\nval SUB.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SUMMARY(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"summary\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowHeadingPhrasingContent {\n\n}\n\n@Suppress(\"unused\")\nopen class SUP(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"sup\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval SUP.asFlowContent : FlowContent\n get() = this\n\nval SUP.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class SVG(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"svg\", consumer, initialAttributes, \"http://www.w3.org/2000/svg\", false, false), HtmlBlockInlineTag {\n\n}\nval SVG.asFlowContent : FlowContent\n get() = this\n\nval SVG.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class TABLE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"table\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var summary : String\n get() = attributeStringString.get(this, \"summary\")\n set(newValue) {attributeStringString.set(this, \"summary\", newValue)}\n\n\n}\n/**\n * Table caption\n */\n@HtmlTagMarker\ninline fun TABLE.caption(classes : String? = null, crossinline block : CAPTION.() -> Unit = {}) : Unit = CAPTION(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table column group\n */\n@HtmlTagMarker\ninline fun TABLE.colGroup(classes : String? = null, crossinline block : COLGROUP.() -> Unit = {}) : Unit = COLGROUP(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table header\n */\n@HtmlTagMarker\ninline fun TABLE.thead(classes : String? = null, crossinline block : THEAD.() -> Unit = {}) : Unit = THEAD(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table footer\n */\n@HtmlTagMarker\ninline fun TABLE.tfoot(classes : String? = null, crossinline block : TFOOT.() -> Unit = {}) : Unit = TFOOT(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table body\n */\n@HtmlTagMarker\ninline fun TABLE.tbody(classes : String? = null, crossinline block : TBODY.() -> Unit = {}) : Unit = TBODY(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun TABLE.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : Unit = TR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class TBODY(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"tbody\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun TBODY.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : Unit = TR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class TD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"td\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n var headers : String\n get() = attributeStringString.get(this, \"headers\")\n set(newValue) {attributeStringString.set(this, \"headers\", newValue)}\n\n var rowSpan : String\n get() = attributeStringString.get(this, \"rowspan\")\n set(newValue) {attributeStringString.set(this, \"rowspan\", newValue)}\n\n var colSpan : String\n get() = attributeStringString.get(this, \"colspan\")\n set(newValue) {attributeStringString.set(this, \"colspan\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class TEXTAREA(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"textarea\", consumer, initialAttributes, null, true, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var autoFocus : Boolean\n get() = attributeBooleanTicker.get(this, \"autofocus\")\n set(newValue) {attributeBooleanTicker.set(this, \"autofocus\", newValue)}\n\n var disabled : Boolean\n get() = attributeBooleanTicker.get(this, \"disabled\")\n set(newValue) {attributeBooleanTicker.set(this, \"disabled\", newValue)}\n\n var form : String\n get() = attributeStringString.get(this, \"form\")\n set(newValue) {attributeStringString.set(this, \"form\", newValue)}\n\n var maxLength : String\n get() = attributeStringString.get(this, \"maxlength\")\n set(newValue) {attributeStringString.set(this, \"maxlength\", newValue)}\n\n var minLength : String\n get() = attributeStringString.get(this, \"minlength\")\n set(newValue) {attributeStringString.set(this, \"minlength\", newValue)}\n\n var name : String\n get() = attributeStringString.get(this, \"name\")\n set(newValue) {attributeStringString.set(this, \"name\", newValue)}\n\n var placeholder : String\n get() = attributeStringString.get(this, \"placeholder\")\n set(newValue) {attributeStringString.set(this, \"placeholder\", newValue)}\n\n var readonly : Boolean\n get() = attributeBooleanTicker.get(this, \"readonly\")\n set(newValue) {attributeBooleanTicker.set(this, \"readonly\", newValue)}\n\n var required : Boolean\n get() = attributeBooleanTicker.get(this, \"required\")\n set(newValue) {attributeBooleanTicker.set(this, \"required\", newValue)}\n\n var rows : String\n get() = attributeStringString.get(this, \"rows\")\n set(newValue) {attributeStringString.set(this, \"rows\", newValue)}\n\n var cols : String\n get() = attributeStringString.get(this, \"cols\")\n set(newValue) {attributeStringString.set(this, \"cols\", newValue)}\n\n var wrap : TextAreaWrap\n get() = attributeTextAreaWrapEnumTextAreaWrapValues.get(this, \"wrap\")\n set(newValue) {attributeTextAreaWrapEnumTextAreaWrapValues.set(this, \"wrap\", newValue)}\n\n\n}\nval TEXTAREA.asFlowContent : FlowContent\n get() = this\n\nval TEXTAREA.asInteractiveContent : InteractiveContent\n get() = this\n\nval TEXTAREA.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class TFOOT(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"tfoot\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun TFOOT.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : Unit = TR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class TH(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"th\", consumer, initialAttributes, null, false, false), HtmlInlineTag {\n var headers : String\n get() = attributeStringString.get(this, \"headers\")\n set(newValue) {attributeStringString.set(this, \"headers\", newValue)}\n\n var rowSpan : String\n get() = attributeStringString.get(this, \"rowspan\")\n set(newValue) {attributeStringString.set(this, \"rowspan\", newValue)}\n\n var colSpan : String\n get() = attributeStringString.get(this, \"colspan\")\n set(newValue) {attributeStringString.set(this, \"colspan\", newValue)}\n\n var scope : ThScope\n get() = attributeThScopeEnumThScopeValues.get(this, \"scope\")\n set(newValue) {attributeThScopeEnumThScopeValues.set(this, \"scope\", newValue)}\n\n\n}\n\n@Suppress(\"unused\")\nopen class THEAD(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"thead\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n/**\n * Table row\n */\n@HtmlTagMarker\ninline fun THEAD.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : Unit = TR(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n@Suppress(\"unused\")\nopen class TIME(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"time\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n var dateTime : String\n get() = attributeStringString.get(this, \"datetime\")\n set(newValue) {attributeStringString.set(this, \"datetime\", newValue)}\n\n\n}\nval TIME.asFlowContent : FlowContent\n get() = this\n\nval TIME.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class TITLE(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"title\", consumer, initialAttributes, null, false, false), HtmlHeadTag {\n\n}\n\n@Suppress(\"unused\")\nopen class TR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"tr\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacade {\n\n}\n/**\n * Table header cell\n */\n@HtmlTagMarker\ninline fun TR.th(scope : ThScope? = null, classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", scope?.enumEncode(),\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun TR.colTh(classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", ThScope.col.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun TR.colGroupTh(classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", ThScope.colGroup.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun TR.rowTh(classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", ThScope.row.realValue,\"class\", classes), consumer).visit(block)\n@HtmlTagMarker\ninline fun TR.rowGroupTh(classes : String? = null, crossinline block : TH.() -> Unit = {}) : Unit = TH(attributesMapOf(\"scope\", ThScope.rowGroup.realValue,\"class\", classes), consumer).visit(block)\n\n/**\n * Table data cell\n */\n@HtmlTagMarker\ninline fun TR.td(classes : String? = null, crossinline block : TD.() -> Unit = {}) : Unit = TD(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class UL(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"ul\", consumer, initialAttributes, null, false, false), HtmlBlockTag {\n\n}\n/**\n * List item\n */\n@HtmlTagMarker\ninline fun UL.li(classes : String? = null, crossinline block : LI.() -> Unit = {}) : Unit = LI(attributesMapOf(\"class\", classes), consumer).visit(block)\n\n\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n@Suppress(\"unused\")\nopen class VAR(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"var\", consumer, initialAttributes, null, true, false), HtmlBlockInlineTag {\n\n}\nval VAR.asFlowContent : FlowContent\n get() = this\n\nval VAR.asPhrasingContent : PhrasingContent\n get() = this\n\n\n@Suppress(\"unused\")\nopen class VIDEO(initialAttributes : Map, override val consumer : TagConsumer<*>) : HTMLTag(\"video\", consumer, initialAttributes, null, false, false), CommonAttributeGroupFacadeFlowInteractivePhrasingContent {\n var src : String\n get() = attributeStringString.get(this, \"src\")\n set(newValue) {attributeStringString.set(this, \"src\", newValue)}\n\n var autoBuffer : Boolean\n get() = attributeBooleanTicker.get(this, \"autobuffer\")\n set(newValue) {attributeBooleanTicker.set(this, \"autobuffer\", newValue)}\n\n var autoPlay : Boolean\n get() = attributeBooleanTicker.get(this, \"autoplay\")\n set(newValue) {attributeBooleanTicker.set(this, \"autoplay\", newValue)}\n\n var loop : Boolean\n get() = attributeBooleanTicker.get(this, \"loop\")\n set(newValue) {attributeBooleanTicker.set(this, \"loop\", newValue)}\n\n var controls : Boolean\n get() = attributeBooleanTicker.get(this, \"controls\")\n set(newValue) {attributeBooleanTicker.set(this, \"controls\", newValue)}\n\n var width : String\n get() = attributeStringString.get(this, \"width\")\n set(newValue) {attributeStringString.set(this, \"width\", newValue)}\n\n var height : String\n get() = attributeStringString.get(this, \"height\")\n set(newValue) {attributeStringString.set(this, \"height\", newValue)}\n\n var poster : String\n get() = attributeStringString.get(this, \"poster\")\n set(newValue) {attributeStringString.set(this, \"poster\", newValue)}\n\n\n}\n/**\n * Media source for \n */\n@HtmlTagMarker\ninline fun VIDEO.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : Unit = SOURCE(attributesMapOf(\"class\", classes), consumer).visit(block)\n\nval VIDEO.asFlowContent : FlowContent\n get() = this\n\nval VIDEO.asInteractiveContent : InteractiveContent\n get() = this\n\nval VIDEO.asPhrasingContent : PhrasingContent\n get() = this\n\n\n","package kotlinx.html\n\nimport kotlinx.html.impl.*\n\nopen class HTMLTag(\n override val tagName: String,\n override val consumer: TagConsumer<*>,\n initialAttributes: Map,\n override val namespace: String? = null,\n override val inlineTag: Boolean,\n override val emptyTag: Boolean\n) : Tag {\n\n override val attributes: DelegatingMap = DelegatingMap(initialAttributes, this) { consumer }\n\n override val attributesEntries: Collection>\n get() = attributes.immutableEntries\n}\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\nimport kotlinx.html.org.w3c.dom.events.Event\n\ndata class TimedResult(val result: T, val time: Long)\n\nval TimedResult.out: O\n get() = result\n\nprivate class TimeMeasureConsumer(val downstream: TagConsumer) : TagConsumer> {\n private val start = currentTimeMillis()\n\n override fun onTagStart(tag: Tag) {\n downstream.onTagStart(tag)\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n downstream.onTagAttributeChange(tag, attribute, value)\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n downstream.onTagEvent(tag, event, value)\n }\n\n override fun onTagEnd(tag: Tag) {\n downstream.onTagEnd(tag)\n }\n\n override fun onTagContent(content: CharSequence) {\n downstream.onTagContent(content)\n }\n\n override fun onTagContentEntity(entity: Entities) {\n downstream.onTagContentEntity(entity)\n }\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n downstream.onTagContentUnsafe(block)\n }\n\n override fun onTagError(tag: Tag, exception: Throwable) {\n downstream.onTagError(tag, exception)\n }\n\n override fun onTagComment(content: CharSequence) {\n downstream.onTagComment(content)\n }\n\n override fun finalize(): TimedResult = TimedResult(downstream.finalize(), currentTimeMillis() - start)\n}\n\nfun TagConsumer.measureTime(): TagConsumer> = TimeMeasureConsumer(this)","package kotlinx.html.stream\n\nimport kotlinx.html.*\nimport kotlinx.html.consumers.*\nimport kotlinx.html.org.w3c.dom.events.Event\n\nclass HTMLStreamBuilder(val out: O, val prettyPrint: Boolean, val xhtmlCompatible: Boolean) :\n TagConsumer {\n private var level = 0\n private var ln = true\n\n override fun onTagStart(tag: Tag) {\n if (prettyPrint && !tag.inlineTag) {\n indent()\n }\n level++\n\n out.append(\"<\")\n out.append(tag.tagName)\n\n if (tag.namespace != null) {\n out.append(\" xmlns=\\\"\")\n out.append(tag.namespace)\n out.append(\"\\\"\")\n }\n\n if (tag.attributes.isNotEmpty()) {\n tag.attributesEntries.forEachIndexed { _, e ->\n if (!e.key.isValidXmlAttributeName()) {\n throw IllegalArgumentException(\"Tag ${tag.tagName} has invalid attribute name ${e.key}\")\n }\n\n out.append(' ')\n out.append(e.key)\n out.append(\"=\\\"\")\n out.escapeAppend(e.value)\n out.append('\\\"')\n }\n }\n\n if (xhtmlCompatible && tag.emptyTag) {\n out.append(\"/\")\n }\n\n out.append(\">\")\n ln = false\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n throw UnsupportedOperationException(\"tag attribute can't be changed as it was already written to the stream. Use with DelayedConsumer to be able to modify attributes\")\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n throw UnsupportedOperationException(\"you can't assign lambda event handler when building text\")\n }\n\n override fun onTagEnd(tag: Tag) {\n level--\n if (ln) {\n indent()\n }\n\n if (!tag.emptyTag) {\n out.append(\"\")\n }\n\n if (prettyPrint && !tag.inlineTag) {\n appendln()\n }\n }\n\n override fun onTagContent(content: CharSequence) {\n out.escapeAppend(content)\n ln = false\n }\n\n override fun onTagContentEntity(entity: Entities) {\n out.append(entity.text)\n ln = false\n }\n\n override fun finalize(): O = out\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n UnsafeImpl.block()\n }\n\n override fun onTagComment(content: CharSequence) {\n if (prettyPrint) {\n indent()\n }\n\n out.append(\"\")\n\n ln = false\n }\n\n val UnsafeImpl = object : Unsafe {\n override operator fun String.unaryPlus() {\n out.append(this)\n }\n }\n\n private fun appendln() {\n if (prettyPrint && !ln) {\n out.append(\"\\n\")\n ln = true\n }\n }\n\n private fun indent() {\n if (prettyPrint) {\n if (!ln) {\n out.append(\"\\n\")\n }\n var remaining = level\n while (remaining >= 4) {\n out.append(\" \")\n remaining -= 4\n }\n while (remaining >= 2) {\n out.append(\" \")\n remaining -= 2\n }\n if (remaining > 0) {\n out.append(\" \")\n }\n ln = false\n }\n }\n}\n\nprivate val AVERAGE_PAGE_SIZE = 32768\n\nfun createHTML(prettyPrint: Boolean = true, xhtmlCompatible: Boolean = false): TagConsumer =\n HTMLStreamBuilder(\n StringBuilder(AVERAGE_PAGE_SIZE),\n prettyPrint,\n xhtmlCompatible\n ).onFinalizeMap { sb, _ -> sb.toString() }.delayed()\n\nfun O.appendHTML(prettyPrint: Boolean = true, xhtmlCompatible: Boolean = false): TagConsumer =\n HTMLStreamBuilder(this, prettyPrint, xhtmlCompatible).delayed()\n\n@Deprecated(\"Should be resolved to the previous implementation\", level = DeprecationLevel.HIDDEN)\nfun O.appendHTML(prettyPrint: Boolean = true): TagConsumer =\n appendHTML(prettyPrint, false)\n\nprivate val escapeMap = mapOf(\n '<' to \"<\",\n '>' to \">\",\n '&' to \"&\",\n '\\\"' to \""\"\n).let { mappings ->\n val maxCode = mappings.keys.map { it.toInt() }.maxOrNull() ?: -1\n\n Array(maxCode + 1) { mappings[it.toChar()] }\n}\n\nprivate val letterRangeLowerCase = 'a'..'z'\nprivate val letterRangeUpperCase = 'A'..'Z'\nprivate val digitRange = '0'..'9'\n\nprivate fun Char._isLetter() = this in letterRangeLowerCase || this in letterRangeUpperCase\nprivate fun Char._isDigit() = this in digitRange\n\nprivate fun String.isValidXmlAttributeName() =\n !startsWithXml()\n && this.isNotEmpty()\n && (this[0]._isLetter() || this[0] == '_')\n && this.all { it._isLetter() || it._isDigit() || it in \"._:-\" }\n\nprivate fun String.startsWithXml() = length >= 3\n && (this[0].let { it == 'x' || it == 'X' })\n && (this[1].let { it == 'm' || it == 'M' })\n && (this[2].let { it == 'l' || it == 'L' })\n\nprivate fun Appendable.escapeAppend(s: CharSequence) {\n var lastIndex = 0\n val mappings = escapeMap\n val size = mappings.size\n\n for (idx in 0..s.length - 1) {\n val ch = s[idx].toInt()\n if (ch < 0 || ch >= size) continue\n val escape = mappings[ch]\n if (escape != null) {\n append(s.substring(lastIndex, idx))\n append(escape)\n lastIndex = idx + 1\n }\n }\n\n if (lastIndex < s.length) {\n append(s.substring(lastIndex, s.length))\n }\n}\n\nprivate fun Appendable.escapeComment(s: CharSequence) {\n var start = 0\n while (start < s.length) {\n val index = s.indexOf(\"--\")\n if (index == -1) {\n if (start == 0) {\n append(s)\n } else {\n append(s, start, s.length)\n }\n break\n }\n\n append(s, start, index)\n start += 2\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"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","package kotlinx.html.consumers\n\nimport kotlinx.html.*\n\nclass TraceConsumer(val downstream: TagConsumer, val println: (String) -> Unit) : TagConsumer by downstream {\n private val id = \"ID-${currentTimeMillis() % 16384}\"\n private val path = ArrayList(1024)\n\n override fun onTagStart(tag: Tag) {\n downstream.onTagStart(tag)\n path.add(tag.tagName)\n\n println(\"[$id] open ${tag.tagName} path: ${path.joinToString(\" > \")}\")\n }\n\n override fun onTagEnd(tag: Tag) {\n downstream.onTagEnd(tag)\n path.removeAt(path.lastIndex)\n\n println(\"[$id] close ${tag.tagName} path: ${path.joinToString(\" > \")}\")\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n downstream.onTagAttributeChange(tag, attribute, value)\n\n println(\"[$id] ${tag.tagName}.$attribute changed to $value\")\n }\n\n override fun onTagError(tag: Tag, exception: Throwable) {\n println(\"[$id] exception in ${tag.tagName}: ${exception.message}\")\n\n downstream.onTagError(tag, exception)\n }\n\n override fun finalize(): R {\n val v = downstream.finalize()\n\n println(\"[$id] finalized: ${v.toString()}\")\n\n return v\n }\n}\n\nfun TagConsumer.trace(println: (String) -> Unit): TagConsumer = TraceConsumer(this, println)\n//header fun TagConsumer.trace() : TagConsumer\n","package kotlinx.html\n\nfun HEAD.styleLink(url: String): Unit = link {\n rel = LinkRel.stylesheet\n type = LinkType.textCss\n\n href = url\n}\n\nval Tag.br: Unit\n get() {\n val tag = BR(emptyMap(), consumer)\n consumer.onTagStart(tag)\n consumer.onTagEnd(tag)\n }\n\nexpect fun currentTimeMillis(): Long\n","package kotlinx.html.js\n\nimport kotlinx.html.*\nimport org.w3c.dom.*\n\n@Deprecated(\"Use legend instead\", ReplaceWith(\"legend(classes, block)\"))\ninline fun TagConsumer.legEnd(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : HTMLLegendElement = legend(classes, block)\n\n@Deprecated(\"Use htmlObject instead\", ReplaceWith(\"htmlObject(classes, block)\", \"kotlinx.html.js.htmlObject\"))\ninline fun TagConsumer.object_(classes : String? = null, crossinline block : OBJECT.() -> Unit = {}) : HTMLElement =\n htmlObject(classes, block)\n\n@Deprecated(\"Use htmlVar instead\", ReplaceWith(\"htmlVar(classes, block)\", \"kotlinx.html.js.htmlVar\"))\ninline fun TagConsumer.var_(classes : String? = null, crossinline block : VAR.() -> Unit = {}) : HTMLElement =\n htmlVar(classes, block)\n","package kotlinx.html.js\n\nimport kotlinx.html.*\nimport kotlinx.html.impl.*\nimport kotlinx.html.attributes.*\nimport org.w3c.dom.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\n/**\n * Anchor\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.a(href : String? = null, target : String? = null, classes : String? = null, crossinline block : A.() -> Unit = {}) : HTMLAnchorElement = A(attributesMapOf(\"href\", href,\"target\", target,\"class\", classes), this).visitAndFinalize(this, block) as HTMLAnchorElement\n\n/**\n * Abbreviated form (e.g., WWW, HTTP,etc.)\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.abbr(classes : String? = null, crossinline block : ABBR.() -> Unit = {}) : HTMLElement = ABBR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Information on author\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.address(classes : String? = null, crossinline block : ADDRESS.() -> Unit = {}) : HTMLElement = ADDRESS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Client-side image map area\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.area(shape : AreaShape? = null, alt : String? = null, classes : String? = null, crossinline block : AREA.() -> Unit = {}) : HTMLAreaElement = AREA(attributesMapOf(\"Shape\", shape?.enumEncode(),\"alt\", alt,\"class\", classes), this).visitAndFinalize(this, block) as HTMLAreaElement\n\n/**\n * Self-contained syndicatable or reusable composition\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.article(classes : String? = null, crossinline block : ARTICLE.() -> Unit = {}) : HTMLElement = ARTICLE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Sidebar for tangentially related content\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.aside(classes : String? = null, crossinline block : ASIDE.() -> Unit = {}) : HTMLElement = ASIDE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Audio player\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.audio(classes : String? = null, crossinline block : AUDIO.() -> Unit = {}) : HTMLAudioElement = AUDIO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLAudioElement\n\n/**\n * Bold text style\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.b(classes : String? = null, crossinline block : B.() -> Unit = {}) : HTMLElement = B(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document base URI\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.base(classes : String? = null, crossinline block : BASE.() -> Unit = {}) : HTMLBaseElement = BASE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLBaseElement\n\n/**\n * Text directionality isolation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.bdi(classes : String? = null, crossinline block : BDI.() -> Unit = {}) : HTMLElement = BDI(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * I18N BiDi over-ride\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.bdo(classes : String? = null, crossinline block : BDO.() -> Unit = {}) : HTMLElement = BDO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Long quotation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.blockQuote(classes : String? = null, crossinline block : BLOCKQUOTE.() -> Unit = {}) : HTMLElement = BLOCKQUOTE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Document body\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.body(classes : String? = null, crossinline block : BODY.() -> Unit = {}) : HTMLBodyElement = BODY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLBodyElement\n\n/**\n * Forced line break\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.br(classes : String? = null, crossinline block : BR.() -> Unit = {}) : HTMLBRElement = BR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLBRElement\n\n/**\n * Push button\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.button(formEncType : ButtonFormEncType? = null, formMethod : ButtonFormMethod? = null, name : String? = null, type : ButtonType? = null, classes : String? = null, crossinline block : BUTTON.() -> Unit = {}) : HTMLButtonElement = BUTTON(attributesMapOf(\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"type\", type?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block) as HTMLButtonElement\n\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\npublic fun TagConsumer.canvas(classes : String? = null, content : String = \"\") : HTMLCanvasElement = CANVAS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content}) as HTMLCanvasElement\n/**\n * Scriptable bitmap canvas\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.canvas(classes : String? = null, crossinline block : CANVAS.() -> Unit = {}) : HTMLCanvasElement = CANVAS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLCanvasElement\n\n/**\n * Table caption\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.caption(classes : String? = null, crossinline block : CAPTION.() -> Unit = {}) : HTMLElement = CAPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Citation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.cite(classes : String? = null, crossinline block : CITE.() -> Unit = {}) : HTMLElement = CITE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Computer code fragment\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.code(classes : String? = null, crossinline block : CODE.() -> Unit = {}) : HTMLElement = CODE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Table column\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.col(classes : String? = null, crossinline block : COL.() -> Unit = {}) : HTMLTableColElement = COL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableColElement\n\n/**\n * Table column group\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.colGroup(classes : String? = null, crossinline block : COLGROUP.() -> Unit = {}) : HTMLTableColElement = COLGROUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableColElement\n\n@HtmlTagMarker\npublic inline fun TagConsumer.command(type : CommandType? = null, classes : String? = null, crossinline block : COMMAND.() -> Unit = {}) : HTMLElement = COMMAND(attributesMapOf(\"type\", type?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Container for options for \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dataList(classes : String? = null, crossinline block : DATALIST.() -> Unit = {}) : HTMLDataListElement = DATALIST(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLDataListElement\n\n/**\n * Definition description\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dd(classes : String? = null, crossinline block : DD.() -> Unit = {}) : HTMLElement = DD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Deleted text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.del(classes : String? = null, crossinline block : DEL.() -> Unit = {}) : HTMLElement = DEL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Disclosure control for hiding details\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.details(classes : String? = null, crossinline block : DETAILS.() -> Unit = {}) : HTMLDetailsElement = DETAILS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLDetailsElement\n\n/**\n * Instance definition\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dfn(classes : String? = null, crossinline block : DFN.() -> Unit = {}) : HTMLElement = DFN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Dialog box or window\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dialog(classes : String? = null, crossinline block : DIALOG.() -> Unit = {}) : HTMLDialogElement = DIALOG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLDialogElement\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.div(classes : String? = null, crossinline block : DIV.() -> Unit = {}) : HTMLDivElement = DIV(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLDivElement\n\n/**\n * Definition list\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dl(classes : String? = null, crossinline block : DL.() -> Unit = {}) : HTMLElement = DL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Definition term\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.dt(classes : String? = null, crossinline block : DT.() -> Unit = {}) : HTMLElement = DT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Emphasis\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.em(classes : String? = null, crossinline block : EM.() -> Unit = {}) : HTMLElement = EM(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Plugin\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.embed(classes : String? = null, crossinline block : EMBED.() -> Unit = {}) : HTMLEmbedElement = EMBED(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLEmbedElement\n\n/**\n * Form control group\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.fieldSet(classes : String? = null, crossinline block : FIELDSET.() -> Unit = {}) : HTMLFieldSetElement = FIELDSET(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLFieldSetElement\n\n/**\n * Caption for \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.figcaption(classes : String? = null, crossinline block : FIGCAPTION.() -> Unit = {}) : HTMLElement = FIGCAPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Figure with optional caption\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.figure(classes : String? = null, crossinline block : FIGURE.() -> Unit = {}) : HTMLElement = FIGURE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Footer for a page or section\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.footer(classes : String? = null, crossinline block : FOOTER.() -> Unit = {}) : HTMLElement = FOOTER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Interactive form\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.form(action : String? = null, encType : FormEncType? = null, method : FormMethod? = null, classes : String? = null, crossinline block : FORM.() -> Unit = {}) : HTMLFormElement = FORM(attributesMapOf(\"action\", action,\"enctype\", encType?.enumEncode(),\"method\", method?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block) as HTMLFormElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h1(classes : String? = null, crossinline block : H1.() -> Unit = {}) : HTMLHeadingElement = H1(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h2(classes : String? = null, crossinline block : H2.() -> Unit = {}) : HTMLHeadingElement = H2(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h3(classes : String? = null, crossinline block : H3.() -> Unit = {}) : HTMLHeadingElement = H3(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h4(classes : String? = null, crossinline block : H4.() -> Unit = {}) : HTMLHeadingElement = H4(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h5(classes : String? = null, crossinline block : H5.() -> Unit = {}) : HTMLHeadingElement = H5(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n/**\n * Heading\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.h6(classes : String? = null, crossinline block : H6.() -> Unit = {}) : HTMLHeadingElement = H6(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHeadingElement\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document head\n */\n@HtmlTagMarker\npublic fun TagConsumer.head(content : String = \"\") : HTMLHeadElement = HEAD(emptyMap, this).visitAndFinalize(this, {+content}) as HTMLHeadElement\n/**\n * Document head\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.head(crossinline block : HEAD.() -> Unit = {}) : HTMLHeadElement = HEAD(emptyMap, this).visitAndFinalize(this, block) as HTMLHeadElement\n\n/**\n * Introductory or navigational aids for a page or section\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.header(classes : String? = null, crossinline block : HEADER.() -> Unit = {}) : HTMLElement = HEADER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\npublic inline fun TagConsumer.hGroup(classes : String? = null, crossinline block : HGROUP.() -> Unit = {}) : HTMLElement = HGROUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Horizontal rule\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.hr(classes : String? = null, crossinline block : HR.() -> Unit = {}) : HTMLHRElement = HR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLHRElement\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Document root element\n */\n@HtmlTagMarker\npublic fun TagConsumer.html(content : String = \"\", namespace : String? = null) : HTMLHtmlElement = HTML(emptyMap, this, namespace).visitAndFinalize(this, {+content}) as HTMLHtmlElement\n/**\n * Document root element\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.html(namespace : String? = null, crossinline block : HTML.() -> Unit = {}) : HTMLHtmlElement = HTML(emptyMap, this, namespace).visitAndFinalize(this, block) as HTMLHtmlElement\n\n/**\n * Italic text style\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.i(classes : String? = null, crossinline block : I.() -> Unit = {}) : HTMLElement = I(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\npublic fun TagConsumer.iframe(sandbox : IframeSandbox? = null, classes : String? = null, content : String = \"\") : HTMLElement = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, {+content})\n/**\n * Inline subwindow\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.iframe(sandbox : IframeSandbox? = null, classes : String? = null, crossinline block : IFRAME.() -> Unit = {}) : HTMLElement = IFRAME(attributesMapOf(\"sandbox\", sandbox?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Embedded image\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.img(alt : String? = null, src : String? = null, classes : String? = null, crossinline block : IMG.() -> Unit = {}) : HTMLImageElement = IMG(attributesMapOf(\"alt\", alt,\"src\", src,\"class\", classes), this).visitAndFinalize(this, block) as HTMLImageElement\n\n/**\n * Form control\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.input(type : InputType? = null, formEncType : InputFormEncType? = null, formMethod : InputFormMethod? = null, name : String? = null, classes : String? = null, crossinline block : INPUT.() -> Unit = {}) : HTMLInputElement = INPUT(attributesMapOf(\"type\", type?.enumEncode(),\"formenctype\", formEncType?.enumEncode(),\"formmethod\", formMethod?.enumEncode(),\"name\", name,\"class\", classes), this).visitAndFinalize(this, block) as HTMLInputElement\n\n/**\n * Inserted text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.ins(classes : String? = null, crossinline block : INS.() -> Unit = {}) : HTMLElement = INS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Text to be entered by the user\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.kbd(classes : String? = null, crossinline block : KBD.() -> Unit = {}) : HTMLElement = KBD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Cryptographic key-pair generator form control\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.keyGen(keyType : KeyGenKeyType? = null, classes : String? = null, crossinline block : KEYGEN.() -> Unit = {}) : HTMLElement = KEYGEN(attributesMapOf(\"keytype\", keyType?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Form field label text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.label(classes : String? = null, crossinline block : LABEL.() -> Unit = {}) : HTMLLabelElement = LABEL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLLabelElement\n\n/**\n * Fieldset legend\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.legend(classes : String? = null, crossinline block : LEGEND.() -> Unit = {}) : HTMLLegendElement = LEGEND(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLLegendElement\n\n/**\n * List item\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.li(classes : String? = null, crossinline block : LI.() -> Unit = {}) : HTMLLIElement = LI(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLLIElement\n\n/**\n * A media-independent link\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.link(href : String? = null, rel : String? = null, type : String? = null, crossinline block : LINK.() -> Unit = {}) : HTMLLinkElement = LINK(attributesMapOf(\"href\", href,\"rel\", rel,\"type\", type), this).visitAndFinalize(this, block) as HTMLLinkElement\n\n/**\n * Container for the dominant contents of another element\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.main(classes : String? = null, crossinline block : MAIN.() -> Unit = {}) : HTMLElement = MAIN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Client-side image map\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.map(name : String? = null, classes : String? = null, crossinline block : MAP.() -> Unit = {}) : HTMLMapElement = MAP(attributesMapOf(\"name\", name,\"class\", classes), this).visitAndFinalize(this, block) as HTMLMapElement\n\n/**\n * Highlight\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.mark(classes : String? = null, crossinline block : MARK.() -> Unit = {}) : HTMLElement = MARK(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\npublic inline fun TagConsumer.math(classes : String? = null, crossinline block : MATH.() -> Unit = {}) : HTMLElement = MATH(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\npublic fun TagConsumer.mathml(classes : String? = null, content : String = \"\") : HTMLElement = MATHML(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n@HtmlTagMarker\npublic inline fun TagConsumer.mathml(classes : String? = null, crossinline block : MATHML.() -> Unit = {}) : HTMLElement = MATHML(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.meta(name : String? = null, content : String? = null, charset : String? = null, crossinline block : META.() -> Unit = {}) : HTMLMetaElement = META(attributesMapOf(\"name\", name,\"content\", content,\"charset\", charset), this).visitAndFinalize(this, block) as HTMLMetaElement\n\n/**\n * Gauge\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.meter(classes : String? = null, crossinline block : METER.() -> Unit = {}) : HTMLMeterElement = METER(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLMeterElement\n\n/**\n * Section with navigational links\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.nav(classes : String? = null, crossinline block : NAV.() -> Unit = {}) : HTMLElement = NAV(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic metainformation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.noScript(classes : String? = null, crossinline block : NOSCRIPT.() -> Unit = {}) : HTMLElement = NOSCRIPT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Generic embedded object\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.htmlObject(classes : String? = null, crossinline block : OBJECT.() -> Unit = {}) : HTMLElement = OBJECT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ordered list\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.ol(classes : String? = null, crossinline block : OL.() -> Unit = {}) : HTMLElement = OL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Option group\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.optGroup(label : String? = null, classes : String? = null, crossinline block : OPTGROUP.() -> Unit = {}) : HTMLOptGroupElement = OPTGROUP(attributesMapOf(\"label\", label,\"class\", classes), this).visitAndFinalize(this, block) as HTMLOptGroupElement\n\n/**\n * Selectable choice\n */\n@HtmlTagMarker\npublic fun TagConsumer.option(classes : String? = null, content : String = \"\") : HTMLOptionElement = OPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content}) as HTMLOptionElement\n/**\n * Selectable choice\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.option(classes : String? = null, crossinline block : OPTION.() -> Unit = {}) : HTMLOptionElement = OPTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLOptionElement\n\n/**\n * Calculated output value\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.output(classes : String? = null, crossinline block : OUTPUT.() -> Unit = {}) : HTMLOutputElement = OUTPUT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLOutputElement\n\n/**\n * Paragraph\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.p(classes : String? = null, crossinline block : P.() -> Unit = {}) : HTMLParagraphElement = P(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLParagraphElement\n\n/**\n * Named property value\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.param(name : String? = null, value : String? = null, crossinline block : PARAM.() -> Unit = {}) : HTMLParamElement = PARAM(attributesMapOf(\"name\", name,\"value\", value), this).visitAndFinalize(this, block) as HTMLParamElement\n\n/**\n * Pictures container\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.picture(crossinline block : PICTURE.() -> Unit = {}) : HTMLPictureElement = PICTURE(emptyMap, this).visitAndFinalize(this, block) as HTMLPictureElement\n\n/**\n * Preformatted text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.pre(classes : String? = null, crossinline block : PRE.() -> Unit = {}) : HTMLPreElement = PRE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLPreElement\n\n/**\n * Progress bar\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.progress(classes : String? = null, crossinline block : PROGRESS.() -> Unit = {}) : HTMLProgressElement = PROGRESS(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLProgressElement\n\n/**\n * Short inline quotation\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.q(classes : String? = null, crossinline block : Q.() -> Unit = {}) : HTMLElement = Q(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Parenthesis for ruby annotation text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.rp(classes : String? = null, crossinline block : RP.() -> Unit = {}) : HTMLElement = RP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ruby annotation text\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.rt(classes : String? = null, crossinline block : RT.() -> Unit = {}) : HTMLElement = RT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Ruby annotation(s)\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.ruby(classes : String? = null, crossinline block : RUBY.() -> Unit = {}) : HTMLElement = RUBY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Strike-through text style\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.samp(classes : String? = null, crossinline block : SAMP.() -> Unit = {}) : HTMLElement = SAMP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Script statements\n */\n@HtmlTagMarker\npublic fun TagConsumer.script(type : String? = null, src : String? = null, content : String = \"\") : HTMLScriptElement = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), this).visitAndFinalize(this, {+content}) as HTMLScriptElement\n/**\n * Script statements\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.script(type : String? = null, src : String? = null, crossinline block : SCRIPT.() -> Unit = {}) : HTMLScriptElement = SCRIPT(attributesMapOf(\"type\", type,\"src\", src), this).visitAndFinalize(this, block) as HTMLScriptElement\n\n/**\n * Generic document or application section\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.section(classes : String? = null, crossinline block : SECTION.() -> Unit = {}) : HTMLElement = SECTION(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Option selector\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.select(classes : String? = null, crossinline block : SELECT.() -> Unit = {}) : HTMLSelectElement = SELECT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLSelectElement\n\n/**\n * Small text style\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.small(classes : String? = null, crossinline block : SMALL.() -> Unit = {}) : HTMLElement = SMALL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Media source for \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.source(classes : String? = null, crossinline block : SOURCE.() -> Unit = {}) : HTMLSourceElement = SOURCE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLSourceElement\n\n/**\n * Generic language/style container\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.span(classes : String? = null, crossinline block : SPAN.() -> Unit = {}) : HTMLSpanElement = SPAN(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLSpanElement\n\n/**\n * Strong emphasis\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.strong(classes : String? = null, crossinline block : STRONG.() -> Unit = {}) : HTMLElement = STRONG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@Deprecated(\"This tag doesn't support content or requires unsafe (try unsafe {})\")\n@Suppress(\"DEPRECATION\")\n/**\n * Style info\n */\n@HtmlTagMarker\npublic fun TagConsumer.style(type : String? = null, content : String = \"\") : HTMLStyleElement = STYLE(attributesMapOf(\"type\", type), this).visitAndFinalize(this, {+content}) as HTMLStyleElement\n/**\n * Style info\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.style(type : String? = null, crossinline block : STYLE.() -> Unit = {}) : HTMLStyleElement = STYLE(attributesMapOf(\"type\", type), this).visitAndFinalize(this, block) as HTMLStyleElement\n\n/**\n * Subscript\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.sub(classes : String? = null, crossinline block : SUB.() -> Unit = {}) : HTMLElement = SUB(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Caption for \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.summary(classes : String? = null, crossinline block : SUMMARY.() -> Unit = {}) : HTMLElement = SUMMARY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Superscript\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.sup(classes : String? = null, crossinline block : SUP.() -> Unit = {}) : HTMLElement = SUP(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n@HtmlTagMarker\npublic fun TagConsumer.svg(classes : String? = null, content : String = \"\") : HTMLElement = SVG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, {+content})\n@HtmlTagMarker\npublic inline fun TagConsumer.svg(classes : String? = null, crossinline block : SVG.() -> Unit = {}) : HTMLElement = SVG(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * \n */\n@HtmlTagMarker\npublic inline fun TagConsumer.table(classes : String? = null, crossinline block : TABLE.() -> Unit = {}) : HTMLTableElement = TABLE(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableElement\n\n/**\n * Table body\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.tbody(classes : String? = null, crossinline block : TBODY.() -> Unit = {}) : HTMLTableSectionElement = TBODY(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableSectionElement\n\n/**\n * Table data cell\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.td(classes : String? = null, crossinline block : TD.() -> Unit = {}) : HTMLTableCellElement = TD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableCellElement\n\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\npublic fun TagConsumer.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, content : String = \"\") : HTMLTextAreaElement = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, {+content}) as HTMLTextAreaElement\n/**\n * Multi-line text field\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.textArea(rows : String? = null, cols : String? = null, wrap : TextAreaWrap? = null, classes : String? = null, crossinline block : TEXTAREA.() -> Unit = {}) : HTMLTextAreaElement = TEXTAREA(attributesMapOf(\"rows\", rows,\"cols\", cols,\"wrap\", wrap?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block) as HTMLTextAreaElement\n\n/**\n * Table footer\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.tfoot(classes : String? = null, crossinline block : TFOOT.() -> Unit = {}) : HTMLTableSectionElement = TFOOT(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableSectionElement\n\n/**\n * Table header cell\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.th(scope : ThScope? = null, classes : String? = null, crossinline block : TH.() -> Unit = {}) : HTMLTableCellElement = TH(attributesMapOf(\"scope\", scope?.enumEncode(),\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableCellElement\n\n/**\n * Table header\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.thead(classes : String? = null, crossinline block : THEAD.() -> Unit = {}) : HTMLTableSectionElement = THEAD(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableSectionElement\n\n/**\n * Machine-readable equivalent of date- or time-related data\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.time(classes : String? = null, crossinline block : TIME.() -> Unit = {}) : HTMLTimeElement = TIME(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTimeElement\n\n/**\n * Document title\n */\n@HtmlTagMarker\npublic fun TagConsumer.title(content : String = \"\") : HTMLTitleElement = TITLE(emptyMap, this).visitAndFinalize(this, {+content}) as HTMLTitleElement\n/**\n * Document title\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.title(crossinline block : TITLE.() -> Unit = {}) : HTMLTitleElement = TITLE(emptyMap, this).visitAndFinalize(this, block) as HTMLTitleElement\n\n/**\n * Table row\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.tr(classes : String? = null, crossinline block : TR.() -> Unit = {}) : HTMLTableRowElement = TR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLTableRowElement\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.ul(classes : String? = null, crossinline block : UL.() -> Unit = {}) : HTMLElement = UL(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Unordered list\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.htmlVar(classes : String? = null, crossinline block : VAR.() -> Unit = {}) : HTMLElement = VAR(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block)\n\n/**\n * Video player\n */\n@HtmlTagMarker\npublic inline fun TagConsumer.video(classes : String? = null, crossinline block : VIDEO.() -> Unit = {}) : HTMLVideoElement = VIDEO(attributesMapOf(\"class\", classes), this).visitAndFinalize(this, block) as HTMLVideoElement\n\n","package kotlinx.html.dom\n\nimport kotlinx.html.*\nimport kotlinx.html.consumers.*\nimport kotlinx.html.org.w3c.dom.events.Event\nimport org.w3c.dom.*\n\nprivate inline fun HTMLElement.setEvent(name: String, noinline callback : (Event) -> Unit) : Unit {\n asDynamic()[name] = callback\n}\n\nclass JSDOMBuilder(val document : Document) : TagConsumer {\n private val path = arrayListOf()\n private var lastLeaved : HTMLElement? = null\n\n override fun onTagStart(tag: Tag) {\n val element: HTMLElement = when {\n tag.namespace != null -> document.createElementNS(tag.namespace!!, tag.tagName).asDynamic()\n else -> document.createElement(tag.tagName) as HTMLElement\n }\n\n tag.attributesEntries.forEach {\n element.setAttribute(it.key, it.value)\n }\n\n if (path.isNotEmpty()) {\n path.last().appendChild(element)\n }\n\n path.add(element)\n }\n\n override fun onTagAttributeChange(tag: Tag, attribute: String, value: String?) {\n when {\n path.isEmpty() -> throw IllegalStateException(\"No current tag\")\n path.last().tagName.toLowerCase() != tag.tagName.toLowerCase() -> throw IllegalStateException(\"Wrong current tag\")\n else -> path.last().let { node ->\n if (value == null) {\n node.removeAttribute(attribute)\n } else {\n node.setAttribute(attribute, value)\n }\n }\n }\n }\n\n override fun onTagEvent(tag: Tag, event: String, value: (Event) -> Unit) {\n when {\n path.isEmpty() -> throw IllegalStateException(\"No current tag\")\n path.last().tagName.toLowerCase() != tag.tagName.toLowerCase() -> throw IllegalStateException(\"Wrong current tag\")\n else -> path.last().setEvent(event, value)\n }\n }\n\n override fun onTagEnd(tag: Tag) {\n if (path.isEmpty() || path.last().tagName.toLowerCase() != tag.tagName.toLowerCase()) {\n throw IllegalStateException(\"We haven't entered tag ${tag.tagName} but trying to leave\")\n }\n\n lastLeaved = path.removeAt(path.lastIndex)\n }\n\n override fun onTagContent(content: CharSequence) {\n if (path.isEmpty()) {\n throw IllegalStateException(\"No current DOM node\")\n }\n\n path.last().appendChild(document.createTextNode(content.toString()))\n }\n\n override fun onTagContentEntity(entity: Entities) {\n if (path.isEmpty()) {\n throw IllegalStateException(\"No current DOM node\")\n }\n\n // stupid hack as browsers doesn't support createEntityReference\n val s = document.createElement(\"span\") as HTMLElement\n s.innerHTML = entity.text\n path.last().appendChild(s.childNodes.asList().filter { it.nodeType == Node.TEXT_NODE }.first())\n\n // other solution would be\n// pathLast().innerHTML += entity.text\n }\n\n override fun onTagContentUnsafe(block: Unsafe.() -> Unit) {\n with(DefaultUnsafe()) {\n block()\n\n path.last().innerHTML += toString()\n }\n }\n\n\n override fun onTagComment(content: CharSequence) {\n if (path.isEmpty()) {\n throw IllegalStateException(\"No current DOM node\")\n }\n\n path.last().appendChild(document.createComment(content.toString()))\n }\n\n override fun finalize(): R = lastLeaved?.asR() ?: throw IllegalStateException(\"We can't finalize as there was no tags\")\n\n @Suppress(\"UNCHECKED_CAST\")\n private fun HTMLElement.asR(): R = this.asDynamic()\n\n}\n\n\n fun Document.createTree() : TagConsumer = JSDOMBuilder(this)\n val Document.create : TagConsumer\n get() = JSDOMBuilder(this)\n\nfun Node.append(block: TagConsumer.() -> Unit): List =\n ArrayList().let { result ->\n ownerDocumentExt.createTree().onFinalize { it, partial ->\n if (!partial) {\n result.add(it); appendChild(it)\n }\n }.block()\n\n result\n }\n\nfun Node.prepend(block: TagConsumer.() -> Unit): List =\n ArrayList().let { result ->\n ownerDocumentExt.createTree().onFinalize { it, partial ->\n if (!partial) {\n result.add(it)\n insertBefore(it, firstChild)\n }\n }.block()\n\n result\n }\n\nval HTMLElement.append: TagConsumer\n get() = ownerDocumentExt.createTree().onFinalize { element, partial ->\n if (!partial) {\n this@append.appendChild(element)\n }\n }\n\nval HTMLElement.prepend: TagConsumer\n get() = ownerDocumentExt.createTree().onFinalize { element, partial ->\n if (!partial) {\n this@prepend.insertBefore(element, this@prepend.firstChild)\n }\n }\n\nprivate val Node.ownerDocumentExt: Document\n get() = when {\n this is Document -> this\n else -> ownerDocument ?: throw IllegalStateException(\"Node has no ownerDocument\")\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(\"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 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\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\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-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","package kotlinx.html.js\n\nimport kotlinx.html.*\nimport kotlinx.html.org.w3c.dom.events.Event\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\nvar CommonAttributeGroupFacade.onAbortFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onAbort\")\n set(newValue) {consumer.onTagEvent(this, \"onabort\", newValue)}\n\nvar CommonAttributeGroupFacade.onBlurFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onBlur\")\n set(newValue) {consumer.onTagEvent(this, \"onblur\", newValue)}\n\nvar CommonAttributeGroupFacade.onCanPlayFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onCanPlay\")\n set(newValue) {consumer.onTagEvent(this, \"oncanplay\", newValue)}\n\nvar CommonAttributeGroupFacade.onCanPlayThroughFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onCanPlayThrough\")\n set(newValue) {consumer.onTagEvent(this, \"oncanplaythrough\", newValue)}\n\nvar CommonAttributeGroupFacade.onChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onChange\")\n set(newValue) {consumer.onTagEvent(this, \"onchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onClickFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onClick\")\n set(newValue) {consumer.onTagEvent(this, \"onclick\", newValue)}\n\nvar CommonAttributeGroupFacade.onContextMenuFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onContextMenu\")\n set(newValue) {consumer.onTagEvent(this, \"oncontextmenu\", newValue)}\n\nvar CommonAttributeGroupFacade.onDoubleClickFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDoubleClick\")\n set(newValue) {consumer.onTagEvent(this, \"ondblclick\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDrag\")\n set(newValue) {consumer.onTagEvent(this, \"ondrag\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragEndFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragEnd\")\n set(newValue) {consumer.onTagEvent(this, \"ondragend\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragEnterFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragEnter\")\n set(newValue) {consumer.onTagEvent(this, \"ondragenter\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragLeaveFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragLeave\")\n set(newValue) {consumer.onTagEvent(this, \"ondragleave\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragOverFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragOver\")\n set(newValue) {consumer.onTagEvent(this, \"ondragover\", newValue)}\n\nvar CommonAttributeGroupFacade.onDragStartFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDragStart\")\n set(newValue) {consumer.onTagEvent(this, \"ondragstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onDropFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDrop\")\n set(newValue) {consumer.onTagEvent(this, \"ondrop\", newValue)}\n\nvar CommonAttributeGroupFacade.onDurationChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onDurationChange\")\n set(newValue) {consumer.onTagEvent(this, \"ondurationchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onEmptiedFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onEmptied\")\n set(newValue) {consumer.onTagEvent(this, \"onemptied\", newValue)}\n\nvar CommonAttributeGroupFacade.onEndedFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onEnded\")\n set(newValue) {consumer.onTagEvent(this, \"onended\", newValue)}\n\nvar CommonAttributeGroupFacade.onErrorFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onError\")\n set(newValue) {consumer.onTagEvent(this, \"onerror\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFocus\")\n set(newValue) {consumer.onTagEvent(this, \"onfocus\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusInFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFocusIn\")\n set(newValue) {consumer.onTagEvent(this, \"onfocusin\", newValue)}\n\nvar CommonAttributeGroupFacade.onFocusOutFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFocusOut\")\n set(newValue) {consumer.onTagEvent(this, \"onfocusout\", newValue)}\n\nvar CommonAttributeGroupFacade.onFormChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFormChange\")\n set(newValue) {consumer.onTagEvent(this, \"onformchange\", newValue)}\n\nvar CommonAttributeGroupFacade.onFormInputFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onFormInput\")\n set(newValue) {consumer.onTagEvent(this, \"onforminput\", newValue)}\n\nvar CommonAttributeGroupFacade.onInputFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onInput\")\n set(newValue) {consumer.onTagEvent(this, \"oninput\", newValue)}\n\nvar CommonAttributeGroupFacade.onInvalidFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onInvalid\")\n set(newValue) {consumer.onTagEvent(this, \"oninvalid\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyDownFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onKeyDown\")\n set(newValue) {consumer.onTagEvent(this, \"onkeydown\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyPressFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onKeyPress\")\n set(newValue) {consumer.onTagEvent(this, \"onkeypress\", newValue)}\n\nvar CommonAttributeGroupFacade.onKeyUpFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onKeyUp\")\n set(newValue) {consumer.onTagEvent(this, \"onkeyup\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onLoad\")\n set(newValue) {consumer.onTagEvent(this, \"onload\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadedDataFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onLoadedData\")\n set(newValue) {consumer.onTagEvent(this, \"onloadeddata\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadedMetaDataFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onLoadedMetaData\")\n set(newValue) {consumer.onTagEvent(this, \"onloadedmetadata\", newValue)}\n\nvar CommonAttributeGroupFacade.onLoadStartFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onLoadStart\")\n set(newValue) {consumer.onTagEvent(this, \"onloadstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseDownFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseDown\")\n set(newValue) {consumer.onTagEvent(this, \"onmousedown\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseMoveFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseMove\")\n set(newValue) {consumer.onTagEvent(this, \"onmousemove\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseOutFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseOut\")\n set(newValue) {consumer.onTagEvent(this, \"onmouseout\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseOverFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseOver\")\n set(newValue) {consumer.onTagEvent(this, \"onmouseover\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseUpFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseUp\")\n set(newValue) {consumer.onTagEvent(this, \"onmouseup\", newValue)}\n\nvar CommonAttributeGroupFacade.onMouseWheelFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onMouseWheel\")\n set(newValue) {consumer.onTagEvent(this, \"onmousewheel\", newValue)}\n\nvar CommonAttributeGroupFacade.onPauseFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onPause\")\n set(newValue) {consumer.onTagEvent(this, \"onpause\", newValue)}\n\nvar CommonAttributeGroupFacade.onPlayFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onPlay\")\n set(newValue) {consumer.onTagEvent(this, \"onplay\", newValue)}\n\nvar CommonAttributeGroupFacade.onPlayingFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onPlaying\")\n set(newValue) {consumer.onTagEvent(this, \"onplaying\", newValue)}\n\nvar CommonAttributeGroupFacade.onProgressFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onProgress\")\n set(newValue) {consumer.onTagEvent(this, \"onprogress\", newValue)}\n\nvar CommonAttributeGroupFacade.onRateChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onRateChange\")\n set(newValue) {consumer.onTagEvent(this, \"onratechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onReadyStateChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onReadyStateChange\")\n set(newValue) {consumer.onTagEvent(this, \"onreadystatechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onScrollFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onScroll\")\n set(newValue) {consumer.onTagEvent(this, \"onscroll\", newValue)}\n\nvar CommonAttributeGroupFacade.onSearchFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSearch\")\n set(newValue) {consumer.onTagEvent(this, \"onsearch\", newValue)}\n\nvar CommonAttributeGroupFacade.onSeekedFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSeeked\")\n set(newValue) {consumer.onTagEvent(this, \"onseeked\", newValue)}\n\nvar CommonAttributeGroupFacade.onSeekingFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSeeking\")\n set(newValue) {consumer.onTagEvent(this, \"onseeking\", newValue)}\n\nvar CommonAttributeGroupFacade.onSelectFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSelect\")\n set(newValue) {consumer.onTagEvent(this, \"onselect\", newValue)}\n\nvar CommonAttributeGroupFacade.onShowFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onShow\")\n set(newValue) {consumer.onTagEvent(this, \"onshow\", newValue)}\n\nvar CommonAttributeGroupFacade.onStalledFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onStalled\")\n set(newValue) {consumer.onTagEvent(this, \"onstalled\", newValue)}\n\nvar CommonAttributeGroupFacade.onSubmitFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSubmit\")\n set(newValue) {consumer.onTagEvent(this, \"onsubmit\", newValue)}\n\nvar CommonAttributeGroupFacade.onSuspendFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onSuspend\")\n set(newValue) {consumer.onTagEvent(this, \"onsuspend\", newValue)}\n\nvar CommonAttributeGroupFacade.onTimeUpdateFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTimeUpdate\")\n set(newValue) {consumer.onTagEvent(this, \"ontimeupdate\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchCancelFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTouchCancel\")\n set(newValue) {consumer.onTagEvent(this, \"ontouchcancel\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchEndFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTouchEnd\")\n set(newValue) {consumer.onTagEvent(this, \"ontouchend\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchMoveFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTouchMove\")\n set(newValue) {consumer.onTagEvent(this, \"ontouchmove\", newValue)}\n\nvar CommonAttributeGroupFacade.onTouchStartFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onTouchStart\")\n set(newValue) {consumer.onTagEvent(this, \"ontouchstart\", newValue)}\n\nvar CommonAttributeGroupFacade.onVolumeChangeFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onVolumeChange\")\n set(newValue) {consumer.onTagEvent(this, \"onvolumechange\", newValue)}\n\nvar CommonAttributeGroupFacade.onWaitingFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onWaiting\")\n set(newValue) {consumer.onTagEvent(this, \"onwaiting\", newValue)}\n\nvar CommonAttributeGroupFacade.onWheelFunction : (Event) -> Unit\n get() = throw UnsupportedOperationException(\"You can't read variable onWheel\")\n set(newValue) {consumer.onTagEvent(this, \"onwheel\", newValue)}\n\n","package kotlinx.html.injector\n\nimport kotlinx.html.*\nimport kotlinx.html.dom.*\nimport org.w3c.dom.*\nimport kotlin.reflect.*\n\nfun F.injectTo(bean: T, field: KMutableProperty1) {\n field.set(bean, this)\n}\n\nprivate fun F.injectToUnsafe(bean: T, field: KMutableProperty1) {\n injectTo(bean, field.asDynamic())\n}\n\ninterface InjectCapture\nclass InjectByClassName(val className: String) : InjectCapture\nclass InjectByTagName(val tagName: String) : InjectCapture\nobject InjectRoot : InjectCapture\ninterface CustomCapture : InjectCapture {\n fun apply(element: HTMLElement): Boolean\n}\n\nclass InjectorConsumer(\n val downstream: TagConsumer,\n val bean: T,\n rules: List>>\n) : TagConsumer by downstream {\n\n private val classesMap: Map>> = rules\n .filter { it.first is InjectByClassName }\n .map { it.first as InjectByClassName to it.second }\n .groupBy({ it.first.className }, { it.second })\n\n private val tagNamesMap = rules\n .filter { it.first is InjectByTagName }\n .map { it.first as InjectByTagName to it.second }\n .groupBy({ it.first.tagName.toLowerCase() }, { it.second })\n\n private val rootCaptures = rules.filter { it.first == InjectRoot }.map { it.second }\n private val customCaptures =\n rules.filter { it.first is CustomCapture }.map { it.first as CustomCapture to it.second }\n\n override fun onTagEnd(tag: Tag) {\n downstream.onTagEnd(tag)\n\n val node = downstream.finalize()\n\n if (classesMap.isNotEmpty()) {\n node.classList.asList().flatMap { classesMap[it] ?: emptyList() }.forEach { field ->\n node.injectToUnsafe(bean, field)\n }\n }\n\n if (tagNamesMap.isNotEmpty()) {\n tagNamesMap[node.tagName.toLowerCase()]?.forEach { field ->\n node.injectToUnsafe(bean, field)\n }\n }\n\n customCaptures.filter { it.first.apply(node) }.map { it.second }.forEach { field ->\n node.injectToUnsafe(bean, field)\n }\n }\n\n override fun finalize(): HTMLElement {\n val node = downstream.finalize()\n rootCaptures.forEach { field ->\n node.injectToUnsafe(bean, field)\n }\n\n return node\n }\n}\n\nfun TagConsumer.inject(\n bean: T,\n rules: List>>\n): TagConsumer = InjectorConsumer(this, bean, rules)\n\nfun HTMLElement.appendAndInject(\n bean: T,\n rules: List>>,\n block: TagConsumer.() -> Unit\n): List = append {\n InjectorConsumer(this@append, bean, rules).block()\n Unit\n}\n","package kotlinx.html.consumers\n\nimport kotlinx.html.*\n\nfun TagConsumer.trace() : TagConsumer = trace(println = { console.info(it) })\n","package kotlinx.html\n\nimport kotlin.js.*\n\nactual fun currentTimeMillis(): Long = Date().getTime().toLong()\n","package kotlinx.html\n\nimport kotlinx.html.*\nimport kotlinx.html.attributes.*\n\n/*******************************************************************************\n DO NOT EDIT\n This file was generated by module generate\n*******************************************************************************/\n\ninternal val attributeStringString : Attribute = StringAttribute()\n\ninternal val attributeSetStringStringSet : Attribute> = StringSetAttribute()\n\ninternal val attributeBooleanBoolean : Attribute = BooleanAttribute()\n\ninternal val attributeBooleanBooleanOnOff : Attribute = BooleanAttribute(\"on\", \"off\")\n\ninternal val attributeBooleanTicker : Attribute = TickerAttribute()\n\ninternal val attributeButtonFormEncTypeEnumButtonFormEncTypeValues : Attribute = EnumAttribute(buttonFormEncTypeValues)\n\ninternal val attributeButtonFormMethodEnumButtonFormMethodValues : Attribute = EnumAttribute(buttonFormMethodValues)\n\ninternal val attributeButtonTypeEnumButtonTypeValues : Attribute = EnumAttribute(buttonTypeValues)\n\ninternal val attributeCommandTypeEnumCommandTypeValues : Attribute = EnumAttribute(commandTypeValues)\n\ninternal val attributeDirEnumDirValues : Attribute = EnumAttribute(dirValues)\n\ninternal val attributeDraggableEnumDraggableValues : Attribute = EnumAttribute(draggableValues)\n\ninternal val attributeFormEncTypeEnumFormEncTypeValues : Attribute = EnumAttribute(formEncTypeValues)\n\ninternal val attributeFormMethodEnumFormMethodValues : Attribute = EnumAttribute(formMethodValues)\n\ninternal val attributeIframeSandboxEnumIframeSandboxValues : Attribute = EnumAttribute(iframeSandboxValues)\n\ninternal val attributeInputFormEncTypeEnumInputFormEncTypeValues : Attribute = EnumAttribute(inputFormEncTypeValues)\n\ninternal val attributeInputFormMethodEnumInputFormMethodValues : Attribute = EnumAttribute(inputFormMethodValues)\n\ninternal val attributeInputTypeEnumInputTypeValues : Attribute = EnumAttribute(inputTypeValues)\n\ninternal val attributeKeyGenKeyTypeEnumKeyGenKeyTypeValues : Attribute = EnumAttribute(keyGenKeyTypeValues)\n\ninternal val attributeRunAtEnumRunAtValues : Attribute = EnumAttribute(runAtValues)\n\ninternal val attributeTextAreaWrapEnumTextAreaWrapValues : Attribute = EnumAttribute(textAreaWrapValues)\n\ninternal val attributeThScopeEnumThScopeValues : Attribute = EnumAttribute(thScopeValues)\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;2BA0GA,oD;;;;;;;;mBChGA,qC;uBCkyBA,+C;;;;;;;;;;;oBCmzPA,6C;sBAAA,0C;6BAAA,mD;;;;;;;;;;;2BDlyNA,oD;gCAxTA,yD;yBAAA,gD;gBEx/CA,K;iBCghCA,mC;;;;;;;eHoYA,wC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CIp5CI,0B;IAAuD,MAAM,S;G;;;;;;;;oCAgB7D,qB;IACI,oBAAO,SAAP,C;EACJ,C;oCAEA,qB;IACI,kBAAK,SAAL,C;EACJ,C;+BAEA,a;IACI,aAAS,sBAAa,CAAb,C;EACb,C;+BAEA,a;IACI,kBAAK,CAAE,WAAP,C;EACJ,C;iCAEA,a;IACI,aAAS,4BAAmB,CAAnB,C;EACb,C;kCAEA,a;IACI,aAAS,sBAAa,CAAb,C;EACb,C;;;;;;;;uCAMA,qB;IAAoC,uBAAC,cAAD,C;G;iCAEpC,a;IACI,uBAAC,CAAD,C;EACJ,C;iCAEA,kB;IACI,uBAAC,MAAD,C;EACJ,C;iCAEA,a;IACI,uBAAC,CAAE,WAAH,C;EACJ,C;;;;;;;;;;;;;iFAOJ,yB;IC1EA,qB;ID0EA,mC;MCzEI,kBAAS,8B;;QDyE8D,gB;;QCtErE,kC;UACE,kBAAS,+BAAiB,GAAjB,C;;UAHb,S;;;QAKI,kBAAS,4B;;K;GDmEjB,C;uGAEA,yB;ICjEA,uF;IAXA,qB;ID4EA,6C;MChEI,IAAS,kBAAL,KDiEsB,QCjE1B,C;QACI,MAAM,8BAAyB,iBAAzB,C;;MAZV,kBAAS,8B;;QD4E6B,gB;;QCzEpC,kC;UACE,kBAAS,+BAAiB,GAAjB,C;;UAHb,S;;;QAKI,kBAAS,4B;;MDsEP,OAAoB,QC5DV,W;K;GD2DpB,C;EA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BAAS,gC;;MGOuF,KJkEzB,a;;MCtErE,kC;QACE,oBAAS,iCAAiB,GAAjB,C;;QAHb,S;;;MAKI,oBAAS,8B;;G;EGIqD,oC;IAAC,W;EAAA,C;EADvE,6C;IACkB,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAA2B,e;IGkCsF,kBAApD,WAAO,kBAAgB,OAAhB,EHlCtB,OGkCsB,CAAP,EAA0C,kBAA1C,C;IN5CpG,oBAAS,gC;;MGUqF,KJ+DvB,a;;MCtErE,kC;QACE,oBAAS,iCAAiB,GAAjB,C;;QAHb,S;;;MAKI,oBAAS,8B;;G;yFGQb,yB;IAAA,wC;IAAA,4B;MAAQ,yB;K;GAAR,C;2FAIA,yB;IAAA,wC;IAAA,4B;MAAQ,0B;K;GAAR,C;EASsF,mC;IAAC,W;EAAA,C;EAD3F,4C;IACsC,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAA2B,c;IC6ZkF,kBAAhD,WAAO,kBAAgB,OAAhB,ED5ZpH,OC4ZoH,CAAP,Y;IJ7axH,IAAS,oBAAL,cAAJ,C;MACI,MAAM,8BAAyB,iBAAzB,C;;IAZV,oBAAS,gC;;MG4BW,KJgDkB,a;;MCzEpC,kC;QACE,oBAAS,iCAAiB,GAAjB,C;;QAHb,S;;;MAKI,oBAAS,8B;;IGsBb,OHZgB,oB;G;EGegE,gC;IAAC,W;EAAA,C;EADrF,yC;IACmC,uB;MAAA,UAAmB,I;IAAM,qB;MAAA,QAAwB,W;ICypB+E,kBAA7C,QAAI,kBAAgB,OAAhB,EDxpB9G,OCwpB8G,CAAJ,Y;IJ7qBlH,IAAS,oBAAL,cAAJ,C;MACI,MAAM,8BAAyB,iBAAzB,C;;IAZV,oBAAS,gC;;MGgCQ,KJ4CqB,a;;MCzEpC,kC;QACE,oBAAS,iCAAiB,GAAjB,C;;QAHb,S;;;MAKI,oBAAS,8B;;IG0Bb,OHhBgB,oB;G;EGkBpB,2C;IAC+B,uB;MAAA,UAAmB,I;II+SoH,kBAAjD,QAAI,kBAAgB,OAAhB,EJ9S7G,OI8S6G,CAAJ,EAAuC,kBAAvC,C;IPlVjH,oBAAS,gC;;MGoCQ,KJqCsD,a;;MCtErE,kC;QACE,oBAAS,iCAAiB,GAAjB,C;;QAHb,S;;;MAKI,oBAAS,8B;;EG+BjB,C;EAGmG,q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QCzEpC,kC;UACE,oBAAS,iCAAiB,GAAjB,C;;UAHb,S;;;QAKI,oBAAS,8B;;MIkrBqG,OAA8D,SJxqBhK,W;K;GIoqBpB,C;iFAMA,yB;IAAA,6B;IAAA,4D;IAAA,qC;IJhrBA,uF;IAXA,qB;II+rB4G,iC;MAAC,W;IAAA,C;IAJ7G,4C;MAI2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAuC,Y;MAAyD,kBAA/C,eAAM,gBAAgB,OAAhB,EAAyB,OAAzB,CAAN,EAAyC,SAAzC,C;MJnrBlH,IAAS,oBAAL,KImrB8K,SJnrBlL,C;QACI,MAAM,8BAAyB,iBAAzB,C;;MAZV,oBAAS,gC;;QI8rB+K,KLlnBlJ,a;;QCzEpC,kC;UACE,oBAAS,iCAAiB,GAAjB,C;;UAHb,S;;;QAKI,oBAAS,8B;;MIwrBqG,OAAgE,SJ9qBlK,W;K;GI0qBpB,C;EWzrBA,iC;IAAA,e;IAAA,iB;IAAA,uB;G;EAAA,+B;IAAA,kC;K;IAMI,gD;IACC,4C;IACA,4C;IACA,gD;IACA,8C;IACA,gD;IACA,kD;IACA,gD;IACA,kD;IACA,oD;IACA,+C;IACA,qD;IACA,iD;IACA,+C;IACA,iD;IACA,iD;IACA,mD;IACA,+C;IACA,+C;IACA,+C;IACA,iD;IACA,+C;IACA,qD;IACA,iD;IACA,iD;IACA,mD;IACA,mD;IACA,iD;IACA,qD;IACA,mD;IACA,iD;IACA,iD;IACA,mD;IACA,qD;IACA,qD;IACA,qD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,qD;IACA,iD;IACA,mD;IACA,mD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,+C;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,qD;IACA,iD;IACA,mD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,qD;IACA,mD;IACA,mD;IACA,qD;IACA,qD;IACA,mD;IACA,qD;IACA,iD;IACA,mD;IACA,mD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,+C;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,qD;IACA,iD;IACA,qD;IACA,qD;IACA,qD;IACA,qD;IACA,mD;IACA,iD;IACA,qD;IACA,mD;IACA,kD;G;;EApGD,qC;IAAA,qB;IAAA,6B;G;;EACC,mC;IAAA,qB;IAAA,2B;G;;EACA,mC;IAAA,qB;IAAA,2B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,oC;IAAA,qB;IAAA,4B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;EACA,uC;IAAA,qB;IAAA,+B;G;;EACA,sC;IAAA,qB;IAAA,8B;G;;EACA,qC;IAAA,qB;IAAA,6B;G;;;SAGD,Y;MAAS,aAAM,IAAK,WAAX,GAAwB,G;K;;;;;;;EA7GrC,2B;IAAA,s9F;G;;EAAA,gC;IAAA,a;MAAA,Y;QAAA,kC;MAAA,U;QAAA,gC;MAAA,U;QAAA,gC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,W;QAAA,iC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,Y;QAAA,kC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,W;QAAA,iC;MAAA,W;QAAA,iC;MAAA,W;QAAA,iC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,a;QAAA,mC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,W;QAAA,iC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,c;QAAA,oC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,c;QAAA,oC;MAAA,a;QAAA,mC;MAAA,Y;QAAA,kC;MAAA,Q;QAAA,0D;;G;;ECMc,uC;IANd,e;IAMe,oC;IANf,iB;IAAA,uB;G;EAAA,0B;IAAA,6B;K;IAOI,qCAAI,KAAJ,C;IACA,qCAAI,KAAJ,C;G;;SAFW,Y;MAAA,+B;K;;;EACX,+B;IAAA,gB;IAAA,uB;G;;EACA,+B;IAAA,gB;IAAA,uB;G;;;;;;EARJ,sB;IAAA,qD;G;;EAAA,2B;IAAA,a;MAAA,W;QAAA,4B;MAAA,W;QAAA,4B;MAAA,Q;QAAA,qD;;G;;;EAaoB,6C;IADpB,e;IACqB,oC;IADrB,iB;IAAA,uB;G;EAAA,gC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,wC;IAAA,uC;MAAA,sB;;IAAA,gC;G;EAWqB,8C;IADrB,e;IACsB,oC;IADtB,iB;IAAA,uB;G;EAAA,iC;IAAA,oC;K;IAEI,yDAAO,QAAP,C;IACA,uDAAM,OAAN,C;IACA,yDAAO,QAAP,C;G;;SAHkB,Y;MAAA,+B;K;;;EAClB,yC;IAAA,uB;IAAA,iC;G;;EACA,wC;IAAA,uB;IAAA,gC;G;;EACA,yC;IAAA,uB;IAAA,iC;G;;;;;;EAJJ,6B;IAAA,yG;G;;EAAA,kC;IAAA,a;MAAA,c;QAAA,sC;MAAA,a;QAAA,qC;MAAA,c;QAAA,sC;MAAA,Q;QAAA,4D;;G;;;EASsB,+C;IADtB,e;IACuB,oC;IADvB,iB;IAAA,uB;G;EAAA,kC;IAAA,qC;K;IAEI,6DAAQ,SAAR,C;IACA,+DAAS,UAAT,C;IACA,yDAAM,OAAN,C;G;;SAHmB,Y;MAAA,+B;K;;;EACnB,2C;IAAA,wB;IAAA,mC;G;;EACA,4C;IAAA,wB;IAAA,oC;G;;EACA,yC;IAAA,wB;IAAA,iC;G;;;;;;EAJJ,8B;IAAA,+G;G;;EAAA,mC;IAAA,a;MAAA,e;QAAA,wC;MAAA,gB;QAAA,yC;MAAA,a;QAAA,sC;MAAA,Q;QAAA,6D;;G;;;EASsB,+C;IADtB,e;IACuB,oC;IADvB,iB;IAAA,uB;G;EAAA,kC;IAAA,qC;K;IAEI,iFAAkB,qBAAlB,C;IACA,yGAA8B,mCAA9B,C;IACA,iEAAU,YAAV,C;G;;SAHmB,Y;MAAA,+B;K;;;EACnB,qD;IAAA,wB;IAAA,6C;G;;EACA,iE;IAAA,wB;IAAA,yD;G;;EACA,6C;IAAA,wB;IAAA,qC;G;;;;;;EAJJ,8B;IAAA,kJ;G;;EAAA,mC;IAAA,a;MAAA,yB;QAAA,kD;MAAA,qC;QAAA,8D;MAAA,iB;QAAA,0C;MAAA,Q;QAAA,6D;;G;;;EASqB,8C;IADrB,e;IACsB,oC;IADtB,iB;IAAA,uB;G;EAAA,iC;IAAA,oC;K;IAEI,mDAAI,KAAJ,C;IACA,qDAAK,MAAL,C;IACA,mDAAqD,KAArD,C;IACA,yDAAwD,QAAxD,C;IACA,uDAAuD,OAAvD,C;G;;SALkB,Y;MAAA,+B;K;;;EAClB,sC;IAAA,uB;IAAA,8B;G;;EACA,uC;IAAA,uB;IAAA,+B;G;;EACA,sC;IAAA,uB;IAAA,8B;G;;EACA,yC;IAAA,uB;IAAA,iC;G;;EACA,wC;IAAA,uB;IAAA,gC;G;;;;;;EANJ,6B;IAAA,mK;G;;EAAA,kC;IAAA,a;MAAA,W;QAAA,mC;MAAA,Y;QAAA,oC;MAAA,W;QAAA,mC;MAAA,c;QAAA,sC;MAAA,a;QAAA,qC;MAAA,Q;QAAA,4D;;G;;;EAUA,sB;IAAA,0B;IAEI,aAAqB,Q;IACrB,cAAsB,S;IACtB,YAAoB,O;IACpB,WAAmB,M;IAEnB,cAA4B,UAAO,OAAP,EAAgB,QAAhB,EAA0B,MAA1B,EAAkC,KAAlC,E;G;;;;;;;EAPhC,kC;IAAA,iC;MAAA,gB;;IAAA,0B;G;EAUA,sB;IAAA,0B;IAEI,aAAqB,Q;IACrB,cAAsB,S;IACtB,YAAoB,O;IACpB,WAAmB,M;IAEnB,cAA4B,UAAO,OAAP,EAAgB,QAAhB,EAA0B,MAA1B,EAAkC,KAAlC,E;G;;;;;;;EAPhC,kC;IAAA,iC;MAAA,gB;;IAAA,0B;G;EAWwB,iD;IADxB,e;IACyB,oC;IADzB,iB;IAAA,uB;G;EAAA,oC;IAAA,uC;K;IAEI,iFAAgB,mBAAhB,C;IACA,uEAAW,aAAX,C;IACA,2EAAa,eAAb,C;G;;SAHqB,Y;MAAA,+B;K;;;EACrB,qD;IAAA,0B;IAAA,6C;G;;EACA,gD;IAAA,0B;IAAA,wC;G;;EACA,kD;IAAA,0B;IAAA,0C;G;;;;;;EAJJ,gC;IAAA,sI;G;;EAAA,qC;IAAA,a;MAAA,uB;QAAA,kD;MAAA,kB;QAAA,6C;MAAA,oB;QAAA,+C;MAAA,Q;QAAA,+D;;G;;;EASoB,6C;IADpB,e;IACqB,oC;IADrB,iB;IAAA,uB;G;EAAA,gC;IAAA,mC;K;IAEI,uDAAO,QAAP,C;IACA,2DAAS,UAAT,C;IACA,qDAAM,OAAN,C;IACA,mDAAK,MAAL,C;IACA,2DAAS,UAAT,C;IACA,qEAAc,gBAAd,C;IACA,qDAAM,OAAN,C;IACA,mDAAK,MAAL,C;IACA,uDAAO,QAAP,C;IACA,qDAAM,OAAN,C;IACA,sDAAM,OAAN,C;IACA,wDAAO,QAAP,C;IACA,4DAAS,UAAT,C;IACA,sDAAM,OAAN,C;IACA,sDAAM,OAAN,C;IACA,sDAAM,OAAN,C;IACA,wDAAO,QAAP,C;IACA,wDAAO,QAAP,C;IACA,oDAAK,MAAL,C;IACA,kDAAI,KAAJ,C;IACA,oDAAK,MAAL,C;IACA,kDAAI,KAAJ,C;IACA,oDAAK,MAAL,C;G;;SAvBiB,Y;MAAA,+B;K;;;EACjB,wC;IAAA,sB;IAAA,gC;G;;EACA,0C;IAAA,sB;IAAA,kC;G;;EACA,uC;IAAA,sB;IAAA,+B;G;;EACA,sC;IAAA,sB;IAAA,8B;G;;EACA,0C;IAAA,sB;IAAA,kC;G;;EACA,+C;IAAA,sB;IAAA,uC;G;;EACA,uC;IAAA,sB;IAAA,+B;G;;EACA,sC;IAAA,sB;IAAA,8B;G;;EACA,wC;IAAA,sB;IAAA,gC;G;;EACA,uC;IAAA,sB;IAAA,+B;G;;EACA,uC;IAAA,sB;IAAA,+B;G;;EACA,wC;IAAA,sB;IAAA,gC;G;;EACA,0C;IAAA,sB;IAAA,kC;G;;EACA,uC;IAAA,sB;IAAA,+B;G;;EACA,uC;IAAA,sB;IAAA,+B;G;;EACA,uC;IAAA,sB;IAAA,+B;G;;EACA,wC;IAAA,sB;IAAA,gC;G;;EACA,wC;IAAA,sB;IAAA,gC;G;;EACA,sC;IAAA,sB;IAAA,8B;G;;EACA,qC;IAAA,sB;IAAA,6B;G;;EACA,sC;IAAA,sB;IAAA,8B;G;;EACA,qC;IAAA,sB;IAAA,6B;G;;EACA,sC;IAAA,sB;IAAA,8B;G;;;;;;EAxBJ,4B;IAAA,6tB;G;;EAAA,iC;IAAA,a;MAAA,c;QAAA,qC;MAAA,gB;QAAA,uC;MAAA,a;QAAA,oC;MAAA,Y;QAAA,mC;MAAA,gB;QAAA,uC;MAAA,qB;QAAA,4C;MAAA,a;QAAA,oC;MAAA,Y;QAAA,mC;MAAA,c;QAAA,qC;MAAA,a;QAAA,oC;MAAA,a;QAAA,oC;MAAA,c;QAAA,qC;MAAA,gB;QAAA,uC;MAAA,a;QAAA,oC;MAAA,a;QAAA,oC;MAAA,a;QAAA,oC;MAAA,c;QAAA,qC;MAAA,c;QAAA,qC;MAAA,Y;QAAA,mC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sC;K;IAEI,yDAAK,MAAL,C;IACA,yDAAK,MAAL,C;G;;SAFoB,Y;MAAA,+B;K;;;EACpB,yC;IAAA,yB;IAAA,iC;G;;EACA,yC;IAAA,yB;IAAA,iC;G;;;;;;EAHJ,+B;IAAA,yE;G;;EAAA,oC;IAAA,a;MAAA,Y;QAAA,sC;MAAA,Y;QAAA,sC;MAAA,Q;QAAA,8D;;G;;;EAQkB,2C;IADlB,e;IACmB,oC;IADnB,iB;IAAA,uB;G;EAAA,8B;IAAA,iC;K;IAEI,6CAAI,KAAJ,C;IACA,uDAAS,UAAT,C;IACA,6CAAI,KAAJ,C;IACA,uDAAS,UAAT,C;G;;SAJe,Y;MAAA,+B;K;;;EACf,mC;IAAA,oB;IAAA,2B;G;;EACA,wC;IAAA,oB;IAAA,gC;G;;EACA,mC;IAAA,oB;IAAA,2B;G;;EACA,wC;IAAA,oB;IAAA,gC;G;;;;;;EALJ,0B;IAAA,6H;G;;EAAA,+B;IAAA,a;MAAA,W;QAAA,gC;MAAA,gB;QAAA,qC;MAAA,W;QAAA,gC;MAAA,gB;QAAA,qC;MAAA,Q;QAAA,yD;;G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFCjXA,yB;IAAA,6B;IAAA,4D;IAAA,yC;IjB3BA,qB;IiB+BkG,mC;MAAC,W;IAAA,C;IAJnG,4C;MAI+B,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAyC,c;MAAkE,kBAArD,iBAAQ,gBAAgB,OAAhB,EAAyB,OAAzB,CAAR,EAA2C,kBAA3C,C;MjB9B3G,oBAAS,gC;;QiB8B6J,KlB2C/F,a;;QCtErE,kC;UACE,oBAAS,iCAAiB,GAAjB,C;;UAHb,S;;;QAKI,oBAAS,8B;;K;GiBoBjB,C;6FAMA,yB;IAAA,6B;IAAA,4D;IAAA,+C;IjBjCA,qB;IiBqCwG,sC;MAAC,W;IAAA,C;IAJzG,4C;MAIkC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAA4C,iB;MAAqE,kBAAxD,oBAAW,gBAAgB,OAAhB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kC;UACE,kBAAS,+BAAiB,GAAjB,C;;UAHb,S;;;QAKI,kBAAS,4B;;MAUb,OAAO,QAAS,W;IACpB,C;GAPA,C;wF0CRA,yB;IAAA,6B;IC+WA,4D;IAAA,uC;IAAA,2C;IAAA,8B;I3CvWA,uF;IAXA,qB;I0CI6G,kC;MAAC,W;IAAA,C;IAD9G,4C;MAC2C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,a;MCkXiC,Q;MAAgD,kBAAhD,gBAAO,gBAAgB,OAAhB,EDlXP,OCkXO,CAAP,Y;M3C1W1I,IAAS,oBAAL,cAAJ,C;QACI,MAAM,8BAAyB,iBAAzB,C;;MAZV,oBAAS,gC;;Q0CG0I,K3CyE7G,a;;QCzEpC,kC;UACE,oBAAS,iCAAiB,GAAjB,C;;UAHb,S;;;QAKI,oBAAS,8B;;M0CHsH,OCkXO,cAAgD,O3CrW1K,oB2CqW0H,0C;K;GDnX9I,C;0FAGA,yB;IAAA,6B;ICgbA,4D;IAAA,uC;I3C3aA,uF;IAXA,qB;I0CO8G,mC;MAAC,W;IAAA,C;IAD/G,4C;MAC4C,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAwC,c;MCmb8E,kBAAhD,gBAAO,gBAAgB,OAAhB,EDlbhI,OCkbgI,CAAP,Y;M3C9axI,IAAS,oBAAL,cAAJ,C;QACI,MAAM,8BAAyB,iBAAzB,C;;MAZV,oBAAS,gC;;Q0COe,K3CqEc,a;;QCzEpC,kC;UACE,oBAAS,iCAAiB,GAAjB,C;;UAHb,S;;;QAKI,oBAAS,8B;;M0CCT,O1CSY,oB;K;G0CXpB,C;oFAIA,yB;IAAA,6B;IC4qBA,4D;IAAA,iC;I3C3qBA,uF;IAXA,qB;I0CWwG,gC;MAAC,W;IAAA,C;IADzG,4C;MACyC,uB;QAAA,UAAoB,I;MAAM,qB;QAAA,QAAqC,W;MC+qB2E,kBAA7C,aAAI,gBAAgB,OAAhB,ED9qB1H,OC8qB0H,CAAJ,Y;M3C9qBlI,IAAS,oBAAL,cAAJ,C;QACI,MAAM,8BAAyB,iBAAzB,C;;MAZV,oBAAS,gC;;Q0CWY,K3CiEiB,a;;QCzEpC,kC;UACE,oBAAS,iCAAiB,GAAjB,C;;UAHb,S;;;QAKI,oBAAS,8B;;M0CKT,O1CKY,oB;K;G0CPpB,C;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}